2009-07-09 42 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的文件中。你必须抓住段落中间的那条线才能知道在那里看到。

相关问题