2014-03-26 50 views
1

如何使用sprintf而不是0.500打印一半爲.500的文件?如何使用Perl的'sprintf'刪除前導零

下面的兩條語句都打印0.500。

my $half = 1/2; 

print sprintf("%0.3f\n", $half); 
print sprintf("%.3f\n", $half); 
+1

爲什麼你想省略前導零;包含它會更好/更安全/更具可讀性。 –

+0

我同意。但只是爲了匹配一些舊的遺留代碼 – Pungs

回答

6

這是不可能單獨使用sprintf。你可以使用你有的代碼,然後用你喜歡的任何方法刪除前導零(正則表達式很容易)。

my $half = 1/2; 
my $format = sprintf("%.3f", $half); 
$format =~ s/^0//; 
print "$format\n"; 
+4

在5.14+中:'說sprintf(「%。3f」,$ half)=〜s/^ 0 // r; – ikegami