为什么perl不能正确乘以十进制数?

时间:2013-05-06 17:38:02

标签: perl

#!/usr/bin/perl

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

结果 测试:130732

有人可以告诉我为什么吗?

2 个答案:

答案 0 :(得分:0)

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

它实际上存储的东西少于130733/100000。

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

答案 1 :(得分:0)

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

> $x * 100000
130733