-1
#!/usr/bin/perl

$test = 1.30733;
$test = int($test * 100000);
print "test : " , $test ;

测试结果:130732

有人能告诉我为什么吗?

4

2 回答 2

0

130733/100000 是二进制的周期数,就像 1/3 是十进制的周期数一样。将其存储为浮点数需要无限的存储空间。

它实际上存储了比 130733/100000 少一点的东西。

输出浮点数时始终使用舍入,比较它们时始终使用容差。

于 2013-05-06T20:22:13.270 回答
0

如果你跳过 int() Perl 会在这里 DWIM:

> $x * 100000
130733
于 2013-05-06T21:19:29.767 回答