PSi*_*cer 4 floating-point perl integer
以下perl代码将浮点数转换为错误的整数
use strict;
my $zahl =297607.22000;
$zahl=$zahl * 100;
print "$zahl\n";
my $text=sprintf ("%017d",$zahl);
print $text;
Run Code Online (Sandbox Code Playgroud)
这个输出是:
29760722
00000000029760721
Run Code Online (Sandbox Code Playgroud)
问题是,您可以将给定的数字更改为其他数字,它可以正常工作.
知道这里有什么问题或者Perl做错了吗?
谢谢你的帮助!
这与FAQ(为什么我得到长小数)有关.$zahl
未正确舍入,它向下舍入到下一个较低的整数.