如何在Perl的任何计算中提取小数点后的前三位数?

时间:2012-12-25 10:39:12

标签: perl integer-division

对于像1/3这样的简单除法,如果我只想从除法结果中提取小数点后面的前三位数,那怎么办呢?

2 个答案:

答案 0 :(得分:2)

您可以使用 spritnf

来完成此操作
my $rounded = sprintf("%.3f", 1/3);

这不是sprintf的目的,但它确实起到了作用。

如果您只想在点后三位数,则可以使用数学计算:

my $num = 1/3;
my $part;
$part = $1 if $num=~/^\d+\.(\d{3})/;
print "3 digits after dot: $part\n" if defined $part;

答案 1 :(得分:0)

使用sprintf和一些模式匹配。冗长。

my $str;
my $num = 1/3;
my $res = sprintf("%.3f\n",$num);
($str = $res) =~ s/^0\.//;
print "$str\n";