我一生都无法弄清楚为什么以下会产生这样的结果。
use POSIX;
my $g = 6.65;
my $t = $g * 4;
my $r = $t - $g;
my $n = $r / $g;
my $c = ceil($n);
print "$c ($n)\n";
我知道印记太棒了——抱歉。
我已经为我的应用程序解决了这个问题,如下所示:
use POSIX;
my $g = 6.65;
my $t = $g * 4;
my $r = $t - $g;
my $n = $r / $g;
my $c = ceil("$n");
print "$c ($n)\n";
...但我很困惑为什么这里有必要。
发生的事情是这样的:$n
包含浮点值,因此不完全等于3
,在我的电脑上是3.00000000000000044409
。 Perl 足够聪明,可以将其舍入为3
当打印它时,但是当您显式使用浮点函数时,它会完全按照它所宣传的那样执行:ceil
到下一个整数:4
.
这是使用浮点数的现实情况,并且绝不是 Perl 特有的。您不应该依赖它们的确切值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)