PHPの浮動小数点は何が問題なのですか?フロートの問題! (PHPで)
$v = 5.2 * 3;
if($v==15.6) {
echo 'Everything is fine =)';
} else {
echo 'Okay something is wrong :S';
var_dump($v); // float 15.6
}
すぎて、これをチェックアウト:
$v = 5.2 * 3;
if($v>15.6 AND $v<15.60000000001) {
echo 'We are doomed :S';
var_dump($v); // float 15.6
} else {
echo 'Everything is fine =)';
}
を私はそれが内部表現またはいくつかのあいまいな低レベルのものとは何かを持っていると思いますか?それが事実なら、どうすればこの問題を回避できますか? リアルマネー取引を計算する前に知っておくべきことは何ですか?
[Real vs. Floating Point vs. Money]の複製可能性(http://stackoverflow.com/questions/273371/real-vs-floating-point-vs-money) – Piskvor
*(参考)* http: /de.php。net/manual/en/function.bccomp.php – Gordon
これは参考になるはずです。http://docs.sun.com/source/806-3568/ncg_goldberg.html – Piskvor