#!/usr/bin/perl
$test = 1.30733;
$test = int($test * 100000);
print "test : " , $test ;
结果 测试:130732
有人可以告诉我为什么吗?
答案 0 :(得分:0)
130733/100000是二进制的周期数,就像1/3是十进制的周期数一样。它需要无限存储才能将其存储为浮点数。
它实际上存储的东西少于130733/100000。
输出浮点数时始终使用舍入,并在比较时始终使用容差。
答案 1 :(得分:0)
如果跳过int(),Perl会在这里DWIM:
> $x * 100000
130733