Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在perl中乘法后保留小数位数_Perl - Fatal编程技术网

如何在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 ); 使

我在Perl中有一个浮点数,在与负整数相乘后,所有尾随的零都会自动删除。但是我仍然需要那些额外的零

例如:

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
与问题无关。