对于像1/3这样的简单除法,如果我只想从除法结果中提取小数点后面的前三位数,那怎么办呢?
答案 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";