如何在perl中乘法后保留小数位数
我在Perl中有一个浮点数,在与负整数相乘后,所有尾随的零都会自动删除。但是我仍然需要那些额外的零 例如:如何在perl中乘法后保留小数位数,perl,Perl,我在Perl中有一个浮点数,在与负整数相乘后,所有尾随的零都会自动删除。但是我仍然需要那些额外的零 例如: my $float = 1.40000; my $multiply = -1 * $float; print "Negative number: $multiply"; //-1.4 有没有办法获得-1.40000?您需要使用printf格式化输出 printf( "Negative number: %.4f\n", $multiply ); 使
my $float = 1.40000;
my $multiply = -1 * $float;
print "Negative number: $multiply"; //-1.4
有没有办法获得
-1.40000
?您需要使用printf
格式化输出
printf( "Negative number: %.4f\n", $multiply );
使用
perldoc-f printf
或了解有关printf
的更多信息。浮点数不能准确表示,它与它们在内存中的存储方式有关。如果要精确保留零,请使用字符串。例如,my$float=“-1.40000
。没有小数位数可保留。浮点数存储为1.*2^
(在本例中为1.0110011*2^0。是的,4/10在二进制中是周期性的,就像1/3在十进制中是周期性的。)也许可以添加一个关于sprintf()的简介
因此该数字也可以完整保留,以备将来的操作使用?my$num=sprintf(“%.4f”,-1*$float)
@stevieb从技术上讲,当使用任何一种操作时,数字在内部都不会发生任何变化。只有当它被打印出来时,零的缺失才是明显的,只有当它被打印出来时,它才是相关的。因此,不,sprintf
与问题无关。