所以我正在写一个 perl 程序来做一些计算和
我已经把一个浮点数作为$x = 00.05;
如果我打印print $x * 100.0;
它返回 500.0
但如果我这样做$x = 0.05;
print $x * 100.0;
它正确打印 5.0;
这是什么行为?
有没有我必须遵守的约定,我失踪了?
最佳答案
前导零表示八进制常数,所以当你这样做时
my $x = 00.05;
您实际上是将两个八进制数进行字符串连接:
my $x = 00 . 05; # The same as "0" . "5"
它给你字符串
"05"
后来你做print $x * 100.0; # prints 500
自
perl
解释为 "05"
作为号码5
关于带小数点的数字中的 Perl 奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62099696/