9

私が理解できない単純な問題...

文字列内に「%」文字を出力するにはどうすればよい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%
4

6 に答える 6

24

\% ではなく %% を使用します ( man printfから)

于 2009-07-09T08:52:56.587 に答える
5

\% の代わりに %% を使用:)

于 2009-07-09T08:53:49.533 に答える
5

%% 単一の %

于 2009-07-09T08:56:05.910 に答える
3

後から考えると、同じことを行う大まかな代替手段がありました。

'%' 記号を文字列として出力します。

printf "\t\t".$hour."00 HRS\t=>\t%.2f\t%.2f\t%.1f%s\n", $total, $max15, ($max15/$total*100), "%";
于 2009-07-09T10:48:57.617 に答える
2

%% を使用して単一の % を出力する

printf "\t\t".$hour."00 HRS\t=>\t%.2f\t%.2f\t%.1f%%\n", $total, $max15, ($max15/$total*100);
于 2009-07-09T08:54:12.560 に答える
1

printfのテンプレートのドキュメントは実際にはsprintfのドキュメントに含まれているため、これは少し注意が必要です。そこを見るには、段落の途中でその行をキャッチする必要があります。

于 2009-07-10T15:40:54.313 に答える