0

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

4

2 回答 2

2

你可以用spritnf做到这一点:

my $rounded = sprintf("%.3f", 1/3);

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

如果您只想要点后的三位数字,您可以使用数学计算来完成:

my $num = 1/3;
my $part;
$part = $1 if $num=~/^\d+\.(\d{3})/;
print "3 digits after dot: $part\n" if defined $part;
于 2012-12-25T11:04:39.837 回答
0

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

my $str;
my $num = 1/3;
my $res = sprintf("%.3f\n",$num);
($str = $res) =~ s/^0\.//;
print "$str\n";
于 2012-12-25T10:53:06.723 回答