2499999999 % 2 renvoie -1 pourquoi ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : 2499999999 % 2 renvoie -1 pourquoi ?

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

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 ...

par jojolapine » 28 févr. 2009, 01:36

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...

2499999999 % 2 renvoie -1 pourquoi ?

par insecticide » 27 févr. 2009, 21:52

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.