2012-03-20 34 views
5

我想顯示小數點後兩位數的美元值來表示美分。在下面的程序中,輸出是23.24。 Perl圍繞小數位。如何避免它。我想輸出是23.23。在sprintf中截斷(不是舍入)小數位?

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

你想要它總是截斷? – Schwern 2012-03-20 05:46:20

+1

以便士而不是美元計算,然後使用'int'截斷分數便士。 – tchrist 2012-03-20 15:43:37

回答

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

不需要'printf' decorum – Zaid 2012-03-20 09:55:13

+0

非常感謝您的信息 – Arav 2012-03-22 05:37:52

7

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

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

非常感謝您的信息 – Arav 2012-03-22 05:39:39