Foros del Web » Programando para Internet » PHP »

Problema al sumar floats?

Estas en el tema de Problema al sumar floats? en el foro de PHP en Foros del Web. Buenas, Estoy intentando sumar estas cifras que recojo de la web 59.625,69 89.278,17 2.085,73 262.591,54 102.407,24 Pero no me hace la suma correctamente. He probado ...
  #1 (permalink)  
Antiguo 05/02/2011, 09:16
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años
Puntos: 20
Problema al sumar floats?

Buenas,

Estoy intentando sumar estas cifras que recojo de la web

59.625,69
89.278,17
2.085,73
262.591,54
102.407,24

Pero no me hace la suma correctamente.

He probado transforma a entero pero no lo hace correctamente.
$var1=intval(59.625,69);
$var2=intval(2.085,73);

echo $var1+$var2;
// 61

Podéis echarme una mano?

Tendría que sustituir los puntos por nada y donde va la coma ponerle un punto para poderlo sumar o existe alguna otra forma directa de hacerlo?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 05/02/2011, 09:35
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 1 mes
Puntos: 96
Respuesta: Problema al sumar floats?

Saludos

Prueba de la siguiente manera:

Código PHP:
$valor1'59.625,69';
$valor2'2.085,73';
$suma=(float) $valor1 + (float) $valor2;
echo (float) 
$suma
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 05/02/2011, 10:16
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años
Puntos: 20
Respuesta: Problema al sumar floats?

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos

Prueba de la siguiente manera:

Código PHP:
$valor1'59.625,69';
$valor2'2.085,73';
$suma=(float) $valor1 + (float) $valor2;
echo (float) 
$suma
Hola Nano,

Si lo hago así me da 61.71 y debería darme 61.711,42€

Aclaro que igual me falto decir que las cifras son euros.

Muchas gracias de antemano!
  #4 (permalink)  
Antiguo 05/02/2011, 11:25
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 10 meses
Puntos: 528
Respuesta: Problema al sumar floats?

Creo que el problema es el formato numerico, pues php toma por defecto el formato americano (comas para miles, punto para decimales).
No tengo experiencia con formato europeo, pero podrías primero eliminar el punto con str_replace y luego sustituir la coma por punto tambien con el str_replace
  #5 (permalink)  
Antiguo 05/02/2011, 14:26
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 4 meses
Puntos: 25
Respuesta: Problema al sumar floats?

deberias hacerlo de esta forma number_format(($num1 + $num2), 2);
  #6 (permalink)  
Antiguo 06/02/2011, 03:10
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años
Puntos: 20
Respuesta: Problema al sumar floats?

Cita:
Iniciado por arros Ver Mensaje
deberias hacerlo de esta forma number_format(($num1 + $num2), 2);
De esa forma me da exactamente lo mismo que con la otra.
61.71

Al final creo que optaré por sustituir la coma por el punto y viceversa.

Saludos!
  #7 (permalink)  
Antiguo 06/02/2011, 07:45
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Problema al sumar floats?

Cita:
Iniciado por neodani Ver Mensaje
De esa forma me da exactamente lo mismo que con la otra.
61.71

Al final creo que optaré por sustituir la coma por el punto y viceversa.

Saludos!
Pues claro que te da lo mismo, porque le especificas a number_format que solo quieres 2 decimales, cambialo por 3
  #8 (permalink)  
Antiguo 06/02/2011, 08:21
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 4 meses
Puntos: 25
Respuesta: Problema al sumar floats?

mira esto:
Código PHP:
Ver original
  1. <?php
  2. $valor1= '59625,69';
  3. $valor2= '2085,73';
  4. $suma= number_format(($valor1 + $valor2),2);
  5. echo  $suma;
  6. ?>
el resultado sera: 61,710.00 es esto lo que quieres???
y no hace falta declarar que es float solo en la tabla float(8.2)

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:10.