Perl int函数和填充零 我有下面的Perl函数来显示最多两个小数点。当输入值为2.01时,它不工作,它将输出为2而不是2.01。我不知道为什么是四舍五入
我将输出写入一个文件,而不是printf,但它仍然将output1作为2Perl int函数和填充零 我有下面的Perl函数来显示最多两个小数点。当输入值为2.01时,它不工作,它将输出为2而不是2.01。我不知道为什么是四舍五入,perl,Perl,我将输出写入一个文件,而不是printf,但它仍然将output1作为2 my $ramount = 2.01; $ramount = int($ramount*100)/100; printf "output1: $ramount"; 如果我有像.2、.23、.2345、1、23、23.1和9这样的值,我可以使用什么函数来填充零,以便它显示0.2、0.23、0.2345、1、23、23.1和9 我认为这一顺序将回答您的问题: DB<1> $a=2.01
my $ramount = 2.01;
$ramount = int($ramount*100)/100;
printf "output1: $ramount";
我认为这一顺序将回答您的问题:
DB<1> $a=2.01
DB<2> p $a
2.01
DB<3> printf "%20.10f\n", $a
2.0100000000
DB<4> printf "%20.16f\n", $a
2.0099999999999998
DB<5> printf "%20.16f\n", ($a*100)
200.9999999999999716
DB<6> printf "%20.16f\n", ($a*100)/100
2.0099999999999998
DB<7> printf "%20.16f\n", int($a*100)
200.0000000000000000
DB<8> printf "%20.16f\n", int($a*100)/100
2.0000000000000000
DB<9>
格式中的前导零将printf
(或sprintf
)告知带零的左键盘。来自:
为什么int()被破坏了?
你的工作很可能很好。正是这些数字
不是你想的那样。首先,看看你的答案
比如说这个,
print int(0.6/0.2-2), "\n";
大多数计算机会打印0而不是1,因为即使如此简单
0.6和0.2这两个数字不能用浮点精确表示
数字。你在上面所说的“三”更像是
2.999999999559
另外,必须注意,int()是一种截断操作,而不是舍入操作。I=int(f+0.5)是显式舍入解。
print int(0.6/0.2-2), "\n";