Probleme PHP modulo - Programmation
Marsh Posté le 28-11-2001 à 22:28:49
ok je vais essayer
mais c bizare pke la division marche bien mais pas le modulo
j ai un resultat erroné !!
je te remercie.
Marsh Posté le 28-11-2001 à 23:20:38
Dans la doc, y disent que si un entier dépasse la valeur maxi : "La taille des entiers dépend de la plate-forme de support, mais la valeur maximale est généralement de 2 milliards et des poussières (c'est un entier signé de 32 bits)" il est automatiquement casté en float.
C'est ce qui doit donc se passer, mais alors la, gaffe à la perte de précision ! Une erreur qui est peut-être minime sur une division peut devenir n'importe quoi sur un modulo !
Je connais pas leur algo pour le modulo, mais c'est sûr qu'il merde pour les grand nombre, surement a cause de la perte de précision.
essaye :
$Nombre = 12345678901; // grand nombre divisé par 97
$div = $nombre / 97; // $div = résultat de la division
$frac = $div - floor( $div ); // $frac = partie après la virgule
$mod = ceil($frac * 97); // Modulo !
Dans cet exemple, le modulo trouvé est 21, ce que la calculatrice de windows confirme !
Sinon, pour manipuler des grand nombres, y'a des libs spécialisés : http://www.php.net/manual/fr/ref.bc.php
Marsh Posté le 28-11-2001 à 23:24:42
je te remercie c super sympa
j'essaierai ca demain au taff
donc ca explique bien mes erreur pour mes grands nombres
encore merci.
Marsh Posté le 28-11-2001 à 22:23:00
J ai un probleme avec l'operateur arithmetique modulo soit %
Lorsque je fais 10 % 3 j ai bien comme resultat 1.
si je vais 123456789 % 97 j ai le bon ressultat.
Mais lorsque mon chiffre fait au moins 11 caractere le resultat n'est pas bon !
Savez vous pkoi ca ne marche pas avec des nombre a plus de 10 caractere alors que les autres oprerations marchent tres bien ?
Avez vous une solution ?
Merci de votre aide .