2009-07-09 44 views
8

簡單的問題,我不明白...如何用'printf'打印'%'字符?

如何在printf字符串內打印'%'字符?下面的代碼打印它,但也給出了「無效轉換」錯誤。

printf "\t\t".$hour."00 HRS\t=>\t%.2f\t%.2f\t%.1f\%\n", $total, $max15, ($max15/$total*100); 

應該輸出類似:

 0000 HRS => 3125.19 898.02 28.7% 

回答

22

你會使用%%,而不是\%(從人printf

+0

+1贏得速度競賽:) – 2009-07-09 08:55:29

5

代替\%使用%% :)

2

使用%%打印單個%

printf "\t\t".$hour."00 HRS\t=>\t%.2f\t%.2f\t%.1f%%\n", $total, $max15, ($max15/$total*100); 
5

%%對於單一的%

3

事後看來,有一個原始的替代方案會做同樣的事情。

打印「%」符號作爲一個字符串:

printf "\t\t".$hour."00 HRS\t=>\t%.2f\t%.2f\t%.1f%s\n", $total, $max15, ($max15/$total*100), "%"; 
1

這是一個有點棘手,因爲模板,用於printf的文件實際上是sprintf的文件中。你必須抓住段落中間的那條線才能知道在那裏看到。

相關問題