使用 Delphi,有没有办法在整数上使用 Format 函数时强制执行符号输出?对于正数,应使用"+"(加号)前缀,对于负数,应使用"-"(减号)前缀。在我的情况下,Zero 的处理并不重要(可以有符号前缀或没有符号前缀)。
我想避免对每种格式和 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;