Igual el problema es porque se trata de números grandes, si es así.. a ver si alguno sabe la solución.
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 = 600851475
144Y 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?
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...
<?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
Tienes problemas con los decimales restantes de la divicion
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