对于像1/3这样的简单除法,如果我只想从除法结果中提取小数点后的前三位,那该怎么做呢?
问问题
947 次
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 回答