Foros del Web » Programando para Internet » PHP »

php no calcula bien decimales

Estas en el tema de php no calcula bien decimales en el foro de PHP en Foros del Web. Hola a tod@s tengo un problema tremendo con el calculo de valores numericos con decimales cuyo resultado final deberia ser cero, aparentemente php aplica algun ...
  #1 (permalink)  
Antiguo 07/05/2010, 02:43
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Exclamación php no calcula bien decimales

Hola a tod@s tengo un problema tremendo con el calculo de valores numericos con decimales cuyo resultado final deberia ser cero, aparentemente php aplica algun tipo de redondeo que hace que una operación tan sencilla como una suma de numeros positivos con numeros negativos (ambos con decimales) cuyo resultado final deberia ser cero, resulte una cifra distinta de 0.

Os adjunto un ejemplo resumido de mi caso.

<?php

$var= 0;

$var = $var + -100.45;
$var = $var + -65.97;
$var = $var + 100.45;
$var= $var + 65.97;

echo ('total acumulado en la variable var: '.$var);

?>

Si observamos el programa obviamente el resultado de var deberia ser cero, pues el echo nos devuelve:

total acumulado en la variable var: -1.42108547152E-14

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 07/05/2010, 03:07
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: php no calcula bien decimales

La verdad es que nunca había visto nada parecido, la explicación no la sé, pero he hecho pruebas, y aplicando la función round, especificándole en el parámetro 2 que debe tener únicamente dos decimales, ya lo calcula bien, está claro que el problema está en los decimales (y creo que más específicamente a la hora de pasarlos de negativo a positivo), pero aplicando la función round (a todos, o a los dos últimos valores, debería ir, según las pruebas que he hecho)


Un saludo
  #3 (permalink)  
Antiguo 07/05/2010, 03:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: php no calcula bien decimales

Gracias HeliOs,
hay una cosa mas alucinante todavia, dependiendo el orden en el que realices las operaciones el resultado SI es cero. como en este ejemplo

<?php

$var= 0;

$var = $var + -100.45;
$var = $var + 65.97;
$var = $var + 100.45;
$var= $var + -65.97;

echo ('total acumulado en la variable var: '.$var);

?>

¿que te parece?

Gracias.
  #4 (permalink)  
Antiguo 07/05/2010, 03:16
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: php no calcula bien decimales

La verdad no entiendo como un lenguaje de programación no es capaz de sumar perfectamente valores positivos y negativos.

Y menos aún que según el orden funcione o no, ya que en las sumas y restas no importa el orden

Un saludo

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 22:44.