1

重複の可能性:
PHP 数学の精度

次の php コードは 7 を出力しますが、私は 8 を期待しています。違いはなぜですか?

<?php echo (int)((0.1+0.7)*10); ?>
4

2 に答える 2

6

浮動小数点表現が不正確なため、0.1+0.7 は0.8 と正確に等しくないためです。それよりもほんの少し少ないかもしれません。を使用するint(..)と、7 に切り捨てられます。

于 2012-07-10T11:06:59.517 に答える
1

他の人はすでに問題を指摘しています。小数点以下の桁数が固定されている場合 (たとえば、お金を扱う場合)、ユーザーに値を表示するときに、セントを計算して保存し、それらをドル/ユーロ/その他に変換することをお勧めします。

于 2012-07-10T11:14:07.797 に答える