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

Perl 在sprintf中截断(不是四舍五入)小数位?,perl,printf,mod-perl,Perl,Printf,Mod Perl,我想在小数点后用两位数字显示美元值,以表示美分。在下面的程序中,输出为23.24。Perl将小数点四舍五入。如何避免它。我希望输出是23.23 $val=23.2395; $testa=sprintf("%.2f", $val); print "\n$testa\n $val"; 有不同的舍入方法 use Math::Round 'nlowmult'; print nlowmult( 0.01, 23.2395 ); # 23.23 你想让它总是截断吗?用便士而不是美元计算,然后用int截断

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

$val=23.2395;
$testa=sprintf("%.2f", $val);
print "\n$testa\n $val";
有不同的舍入方法

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

你想让它总是截断吗?用便士而不是美元计算,然后用
int
截断分数便士。不需要
printf
礼仪
use Math::Round 'nlowmult';
print nlowmult( 0.01, 23.2395 ); # 23.23