6

为什么第一个示例打印错误的结果?

perl -le 'print $x = 100*1.15 % 5'
4
perl -le 'print $x = 1000*1.15 % 5'
0
4

2 回答 2

9

这是因为浮点运算。

print $x = int(100*1.15);

给你114。

于 2010-07-26T14:26:08.037 回答
5

四舍五入。请记住,计算机不能完美地表示实际的小数位 - 它们是近似的。在我的计算机上,perl -le 'print $x = (100*1.15)-115'给出了 result -1.4210854715202e-14,这意味着100*1.15几乎但不完全是 115。

于 2010-07-26T14:27:08.147 回答