以下 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
没有正确舍入,它被舍入到下一个较低的整数。