0

我正在尝试舍入 double 0.0045。当我打电话...

echo round($theFloat, 3);

我得到 0.004,而不是预期响应的 0.005。

这是代码:

$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 回答