Page 1 sur 1

2499999999 % 2 renvoie -1 pourquoi ?

Posté : 27 févr. 2009, 21:52
par insecticide
Bonjour à toute la communauté. J'essaye de réaliser un petit script en php. J'ai un petit soucis. php me renvoie -1 lorsque j'effectue 2499999999 % 2 est-ce que quelqu'un saurait pourquoi ? Merci d'avance.

Posté : 28 févr. 2009, 01:36
par jojolapine
Peut-être que les nombres présents sont un peu trop grand pour php?
Si c'est le problème tu peux tester http://fr.php.net/manual/fr/intro.bc.php qui permet de manipuler des très grands nombres avec plus de précision...

Posté : 28 févr. 2009, 09:18
par stopher
hi ,

La taille maximale de l'entier doit effectivement être atteint .

Pour une plateforme 32bits , celà correspond à 2147483647

Chez moi , ton opération donne bien 1 , mais je suis sur une plateforme 64bits avec la dernière version de php ( 5.2.9 ).

Ce qui m'etonne quand même , c'est que la documentation sur le modulo dit celà :
Note: Souvenez-vous que $a % $b est négatif si $a est négatif.
Pourtant si un entier dépasse , l'entier devient un float , et non négatif ... :roll:

Que te donne les constantes suivante :
echo PHP_INT_MAX;
echo '<br>';
echo PHP_INT_SIZE;
A suivre donc ...