如何使用'printf'打印'%'字符?

时间:2009-07-09 08:50:15

标签: perl 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%

6 个答案:

答案 0 :(得分:22)

你会使用%%,而不是\%(来自man printf

答案 1 :(得分:5)

而不是\%使用%%:)

答案 2 :(得分:5)

%%为单个%

答案 3 :(得分:3)

事后看来,有一种粗略的选择可以做同样的事情。

将'%'符号打印为字符串:

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

答案 4 :(得分:2)

使用%%打印单个%

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

答案 5 :(得分:1)

这有点棘手,因为printf模板的文档实际上在sprintf的文档中。你必须在段落的中间抓住那条线才能知道要看那里。