[Delphi] Format関数の困った仕様

Format 関数には困った仕様が…
Format 関数の仕様に幅指定子と精度指定子があって、フォーマットした際の文字列長を指定できる。

たとえば、下記の様に書くと「123」は、5桁に満たないので足りない分を頭から"0"で埋めて「00123」となる

Format('%.6d', [123]); { 123 -> 000123 }

しかし、下記のコードは…

Format('%.30d', [123]);

「000000000000000000000000000123」とはならず、「                           123」となる。
本来"0"で埋められるはずの部分がスペースで埋められる。

これは整数の処理にInteger型を利用しているためらしい…。
Format関数の説明に制限として書いておけよな…。

コメント (1件)


くろねこ研究所
https://www.blackcat.xyz/article.php/ProgramingFAQ_del0075