Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: ‭lipman en 11 Abril 2010, 14:04 PM

Título: Problema diviendo en PHP (si....)
Publicado por: ‭lipman en 11 Abril 2010, 14:04 PM
Igual el problema es porque se trata de números grandes, si es así.. a ver si alguno sabe la solución.

Código (php-brief) [Seleccionar]

for($a=1;$a<=10;$a++)
echo 600851475143/$a . "<br>";


Salida:
Citar
600851475143
300425737572
200283825048
150212868786
120170295029
100141912524
85835925020.4
75106434392.9
66761275015.9
60085147514.3

Se supone que me ha dividido el número entre todos los números del 1 al 10 inclusives. Pero si nos fijamos, el segundo caso es totalmente falso:

300425737572 x 2 = 600851475144

Y así sucesivamente con los demás. Aparentemente, el multiplicado por uno y por diez son correctos. Los demás no los he comprobado todos, pero no tiene pinta de que salga ese resultado.

¿Porqué es y cómo puedo solucionarlo?
Título: Re: Problema diviendo en PHP (si....)
Publicado por: KrossPock en 11 Abril 2010, 19:32 PM
a mi me devuelve asi:

600851475143
300425737571.5
200283825047.67
150212868785.75
120170295028.6
100141912523.83
85835925020.429
75106434392.875
66761275015.889
60085147514.3

Quiza sea algo del php.ini que redondea los resultados...
Título: Re: Problema diviendo en PHP (si....)
Publicado por: ~ Yoya ~ en 11 Abril 2010, 20:21 PM
Código (php) [Seleccionar]
<?php
for($a=1;$a<=10;$a++){
$r 600851475143/$a;
$r1 =$r $a;
echo 
"$a ->".$r." => ".$r1."\n";
}
?>



Salida:
yoya@yoya-desktop:~/Escritorio$ php a.php
1 ->600851475143 => 600851475143
2 ->300425737572 => 600851475143
3 ->200283825048 => 600851475143
4 ->150212868786 => 600851475143
5 ->120170295029 => 600851475143
6 ->100141912524 => 600851475143
7 ->85835925020.4 => 600851475143
8 ->75106434392.9 => 600851475143
9 ->66761275015.9 => 600851475143
10 ->60085147514.3 => 600851475143
Título: Re: Problema diviendo en PHP (si....)
Publicado por: Skeletron en 11 Abril 2010, 22:55 PM
Tienes problemas con los decimales restantes de la divicion
Título: Re: Problema diviendo en PHP (si....)
Publicado por: ‭lipman en 12 Abril 2010, 15:42 PM
Vale, pues como me dijo Winder, definitivamente el problema es por el redondeo que me hace.

Ahora me falta hayar la solución xD estuve buscando en el php.ini y nada.

Un saludo