0

double を丸めようとしてい0.0045ます。電話したら…

echo round($theFloat, 3);

予想される応答である 0.005 ではなく、0.004 を取得します。

コードは次のとおりです。

$increase = 1.1;
$previousPrice = round(0.11 / $increase, 2);
$nextPrice = round(0.11 * $increase, 2);
$afterCut = round(0.11 * 0.95, 6);
$willSend = $afterCut - $previousPrice;
echo round($willSend, 3);
4

2 に答える 2

1

このようにしてみてください

$increase = 1.1;
$previousPrice = 0.11 / $increase;
$nextPrice = 0.11 * $increase;
$afterCut = round(0.11 * 0.95, 6);
$willSend = $afterCut - $previousPrice;
echo round($willSend, 3);
于 2013-01-29T04:42:23.353 に答える
1

あなたが持っているものは0.0045 のように見えますが、値は実際には約 0.00449999999999999966 です。これは、IEEE 754 浮動小数点値がその数値を正確に指定できないためです。そして、その値を 3 桁に丸めると 0.004 になります。

于 2013-01-29T04:46:16.987 に答える