Delphiを使用して、整数でFormat関数を使用するときに符号出力を強制する方法はありますか?正の数の場合は「+」(プラス)プレフィックスを使用し、負の数の場合は「-」(マイナス)プレフィックスを使用します。私の場合、ゼロの処理は重要ではありません(符号プレフィックスを付けることも、付けないこともできます)。
各フォーマットおよびif-then-elseソリューションにフォーマットヘルパー関数を使用することは避けたいと思います。
Delphiを使用して、整数でFormat関数を使用するときに符号出力を強制する方法はありますか?正の数の場合は「+」(プラス)プレフィックスを使用し、負の数の場合は「-」(マイナス)プレフィックスを使用します。私の場合、ゼロの処理は重要ではありません(符号プレフィックスを付けることも、付けないこともできます)。
各フォーマットおよびif-then-elseソリューションにフォーマットヘルパー関数を使用することは避けたいと思います。
Davidがすでにコメントしたように、このFormat
関数はその目的にフォーマット指定子を提供しません。
本当に単一行のソリューションが必要な場合は、次のようなものを使用できると思います。
uses
Math;
const
Signs: array[TValueSign] of String = ('', '', '+');
var
I: Integer;
begin
I := 100;
Label1.Caption := Format('%s%d', [Signs[Sign(I)], I]); // Output: +100
I := -100;
Label2.Caption := Format('%s%d', [Signs[Sign(I)], I]); // Output: -100
しかし、私は別の(ライブラリ)ルーチンを作成することを好みます:
function FormatInt(Value: Integer): String;
begin
if Value > 0 then
Result := '+' + IntToStr(Value)
else
Result := IntToStr(Value);
end;