Je reçois des valeurs inattendues pour les calculs variables:PHP maths bizarre
$var1 = $var2 * (((1 + $var3)^$var4)^$var5);
J'ai vérifié que $var2
est 3, $var3
est de 0,1, $var4
est 1, $var5
est donc 1.1,
$var1 = 3*(((1+0.1)^1)^1.1) = 3.3316
mais en PHP, $var1 = 3
si je change $var4
-2,
$var1 = 3*(((1+0.1)^1)^1.1) = 3.6999
mais en PHP, $var1 = 6
Pourquoi est-ce? Des idées? J'ai essayé de déclarer explicitement toutes les variables comme des flottants.
''^est l'opérateur XOR au niveau du bit: http://php.net/manual/en/language.operators.bitwise.php – deceze
Allez, assez avec le vote à la hausse. Ce n'est pas une science de fusée. ;) – aioobe
cela attrape beaucoup de nouveaux venus à PHP (et même quelques personnes plus expérimentées de temps en temps). – Spudley