par
@rthur » 17 sept. 2016, 22:39
Il y a un GROS avertissement sur les float dans la doc :
http://php.net/manual/fr/language.types.float.php
Et bccomp() te renvoies le bon résultat :
<?php
$a = 5.99;
$b = 5.02;
$c = $b + 0.97;
var_dump($a, $c, $a === $c, bccomp($a,$c, 2)); // float 5.99 / float 5.99 / false / 0 (qui veut dire que c'est égal)
printf('$a: %.15f, $c: %.15f', $a, $c); // $a: 5.990000000000000, $c: 5.989999999999999
$a = 5.98;
$b = 5.03;
$c = $b + 0.95;
var_dump($a, $c, $a === $c, bccomp($a,$c, 2)); // float 5.98 / float 5.98 / true / 0 (qui veut dire que c'est égal)
printf('$a: %.15f, $c: %.15f', $a, $c); // $a: 5.980000000000000, $c: 5.980000000000000
Il y a un GROS avertissement sur les float dans la doc :
http://php.net/manual/fr/language.types.float.php
Et bccomp() te renvoies le bon résultat :
[php]<?php
$a = 5.99;
$b = 5.02;
$c = $b + 0.97;
var_dump($a, $c, $a === $c, bccomp($a,$c, 2)); // float 5.99 / float 5.99 / false / 0 (qui veut dire que c'est égal)
printf('$a: %.15f, $c: %.15f', $a, $c); // $a: 5.990000000000000, $c: 5.989999999999999
$a = 5.98;
$b = 5.03;
$c = $b + 0.95;
var_dump($a, $c, $a === $c, bccomp($a,$c, 2)); // float 5.98 / float 5.98 / true / 0 (qui veut dire que c'est égal)
printf('$a: %.15f, $c: %.15f', $a, $c); // $a: 5.980000000000000, $c: 5.980000000000000[/php]