以下 perl 代码将浮点数转换为错误的整数

use strict;

my $zahl =297607.22000;
$zahl=$zahl * 100;
print "$zahl\n";
my $text=sprintf ("%017d",$zahl);
print $text;

这个的输出是:
29760722
00000000029760721

问题是,您可以将给定的数字更改为其他数字并且它可以工作。

知道这里出了什么问题还是 Perl 只是做错了?

谢谢你的帮助!

最佳答案

这与常见问题解答 ( Why am I getting long decimals ) 有关。 $zahl 没有正确舍入,它被舍入到下一个较低的整数。

10-08 04:23