私はPHPを理解していない:PHPでの単純な計算..私は間違っているのですか?
echo -0.01-0.02-0.16+0.01+0.01+0.17;
結果2.7755575615629E-17
は正しく0を=!
私はPHPを理解していない:PHPでの単純な計算..私は間違っているのですか?
echo -0.01-0.02-0.16+0.01+0.01+0.17;
結果2.7755575615629E-17
は正しく0を=!
E-17は実際にはx 10 ^(-17)を意味します。
10進浮動小数点数の遠端で精密エラーに苦しんでいるコンピュータ、によると、0.00000000000000002775557であるためにあなたの答えを計算している...
あなたは精度の並べ替えを必要としない場合は、あなたは、特定の精度に丸め強制することができます:
echo round(-0.01-0.02-0.16+0.01+0.01+0.17, 8);
あなただけのPHPのround()
機能を使用するよりも、答えを切り上げたい場合は、あなたが得た答えはBODMASルールに従って正確な答えです。あなたは答えを得るでしょう。
echo round(-0.01-0.02-0.16+0.01+0.01+0.17, 8);
あなた、 分割しているのであれば分かります しかし数えたときは? 各操作はラウンドしますか? –
ようこそ...あなたが理解できれば、それを受け入れたものとしてマークし、それを閉じます。 –
してください([読み取り、学び、理解] 'http://php.net/manual/en/language.types.float.php – jetblack
でWarning'のセクションを読んでhttps://en.wikipedia.org/wiki/Floating_point#Accuracy_problems)任意の言語のコンピュータ上で浮動小数点値を扱う場合、これはあなたが本当に知る必要があるものです –
http://floating-point-gui.de/ – Philip