在sprintf中截断(不是舍入)小数位?

时间:2012-03-20 05:29:36

标签: perl printf mod-perl

我想用小数点后两位数显示美元值来表示美分。在下面的程序中,输出为23.24。 Perl舍入小数位。如何避免它。我希望输出为23.23。

$val=23.2395;
$testa=sprintf("%.2f", $val);
print "\n$testa\n $val";

2 个答案:

答案 0 :(得分:12)

print int(23.2395*100)/100;  # => 23.23

答案 1 :(得分:7)

Math::Round有不同的舍入方法。

use Math::Round 'nlowmult';
print nlowmult( 0.01, 23.2395 ); # 23.23