No.2ベストアンサー
- 回答日時:
perldoc -f sprintf
によると,
%02d だと「右詰めで少なくとも 2桁表示 (先頭は 0 で埋める)」
%.2d だと「少なくとも 2桁になるように先頭に 0 を追加」
ということになります. まあ, この場合には結果的に同じ.
ちなみに %#02x と %#.2x は違います. 前者は 0x を含めて 2桁 (以上), 後者は 0x のあとに 2桁 (以上).
No.4
- 回答日時:
すみません。
見事に '.' を見落としておりました。sprintf/printf の書式は
% フラグ 最小フィールド幅 '.' 精度 's/d/x'などなど
という具合になっていますが、
対象が 'd' のときはCでの規格の文章を借りれば
> int 引き数を符号付き 10 進表記に変換する。
> 精度指定があれば、精度で指定した桁数は必ず出力される。
> 変換後の値が指定された桁数に足りない場合は、
> 左側が 0 で埋められる。デフォルトの精度は 1 である。
ということですので、#2でTacosan さんが書かれているとおり
質問にある事例では違いが出ないということになります。
No.3
- 回答日時:
#1さんを補足すると
実行結果:
format=%2d :
3 ←3の前には半角スペースが在ります。
(htmlでは半角スペースは今回のように詰めて表示されてしまうケースがあるのでperl≒htmlを出力するものと考えると
%02dの出番はあっても%2dの出番はあまりありませんね。)
15
100
format=%02d :
03
15
100
No.1
- 回答日時:
数値の桁数がフィールドの桁数より小さいときに
なにで埋めるかが変わります。
use strict;
use warnings;
my @fmts = qw(%2d %02d);
foreach my $fmt (@fmts) {
printf "format=%s :\n", $fmt;
foreach my $val (3, 15, 100) {
printf "$fmt\n", $val;
}
}
実行結果:
format=%2d :
3
15
100
format=%02d :
03
15
100
この回答への補足
回答ありがとうございます。
%2dと%02dの違いでなくて、
%.2dと%02dの違いをお聞きしたかったのですが、
.が見えにくかったようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# sprintf()の使い方について 1 2022/08/17 16:16
- C言語・C++・C# 現在プログラムを作っているのですが、実行したときに写真のように結果が表示されるのですが、これを CH 2 2023/01/18 16:22
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- C言語・C++・C# ペーパーマリオみたいにドット絵でない2Dのイラストを作ったりするには何のソフトを使えばいいでしょうか 2 2023/05/29 11:28
- タブレット 2Dゲームが動くタブレットの中で、おすすめのタブレットはありますか? 1 2022/07/16 23:46
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- ノートパソコン 度々すいません こちらの質問で最後です。 今まで多くの方に協力していただき、様々なアドバイスをもらい 4 2023/04/24 15:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
ファイル出力の改行コードをLFに
-
sprintfで10進数を桁数指定で16...
-
Perl中で teeを使っても戻り値...
-
sprintfについて
-
DOSコマンドで、標準出力を出力...
-
Perlでファイルの末尾から指定...
-
ListBoxのデータを高速でファイ...
-
ExcelをCSV書き出す場合のシー...
-
C言語で特定の行を抽出する方法...
-
window.open でのファイル指定方法
-
パスから最後のディレクトリだ...
-
fgets で値が取得できない
-
ReadLineでの読み出し行を指定する
-
CSVデータの編集の際の重複チェ...
-
ifstream を利用した1行分のテ...
-
vba dir の相対パス
-
配列の中に重複文字列があるか...
-
オープンしたファイルで行の連結
-
perlで、後ろの行を読んで、前...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
重複するデータを抽出できる秀...
-
Perlでファイルの末尾から指定...
-
sprintfについて
-
[Perl]ファイル出力のエンコー...
-
エクセルVBAで素数だけを出力す...
-
文字コードの変換(Shift-JISか...
-
テキストファイルから日本語部...
-
sprintfで10進数を桁数指定で16...
-
ファイル出力の改行コードをLFに
-
Perlからsyslog経由でログを出...
-
PerlからのCSV出力
-
perlでcsvの出力について
-
教えて!perlから.exeファイル...
-
バッチファイルで、記号を含む...
-
perl CGIでのhttpヘッダー出力...
-
print文で&(半角)文字のエラー...
-
Perlでエラーログに日時をつける
-
紙にもホームページにも同じレ...
おすすめ情報