Foros del Web » Programando para Internet » PHP »

Resultado erroneo con ROUND

Estas en el tema de Resultado erroneo con ROUND en el foro de PHP en Foros del Web. <?php $numero = 1.565; $resultado = round($numero,2); echo $resultado; // resultado imprime 1.57 echo '<br>'; $numero = 0.565; $resultado = round($numero,2); echo $resultado; //resultado imprime ...
  #1 (permalink)  
Antiguo 05/09/2008, 19:06
 
Fecha de Ingreso: septiembre-2008
Mensajes: 2
Antigüedad: 15 años, 7 meses
Puntos: 0
Resultado erroneo con ROUND

<?php
$numero = 1.565;
$resultado = round($numero,2);
echo $resultado;
// resultado imprime 1.57

echo '<br>';
$numero = 0.565;
$resultado = round($numero,2);
echo $resultado;

//resultado imprime 0.56
?>

Cual el motivo????
me refiero en la parte de decimales
El primero es un resultado correcto .57

el segundo es incorrecto .56

Si hay alguien que podria explicar el mismo estare super agradecido
  #2 (permalink)  
Antiguo 06/09/2008, 13:56
 
Fecha de Ingreso: septiembre-2008
Mensajes: 19
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: Resultado erroneo con ROUND

Hola,

Parece que esta función tiene algunos problemas (bug) con la precisión.

http://bugs.php.net/bug.php?id=24142
  #3 (permalink)  
Antiguo 06/09/2008, 14:14
Avatar de CrepitantE  
Fecha de Ingreso: octubre-2006
Ubicación: Colombia
Mensajes: 421
Antigüedad: 17 años, 6 meses
Puntos: 7
Respuesta: Resultado erroneo con ROUND

Interesante bug, segun las pruebas que hice solo funciona con el numero 2.
__________________
-
  #4 (permalink)  
Antiguo 06/09/2008, 15:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Resultado erroneo con ROUND

Interesante el concepto de "Bankers Rounding", creo como dice el bug, debes de sumar o agregarle la fracción si quieres "subir" o "bajar" el último dígito, te recomiendo también en dado caso usar floor() o ceil() si quieres buscar los absolutos.

Saludos.
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 19:53.