考虑:
function x_StrZero(N: Double; W: Integer; D: Integer = 0): String;
var S : String;
begin
Str(N:W:D,S);
S := Trim(S);
这使 W1057 隐式字符串从“ShortString”转换为“字符串”
在线文档说:
procedure Str(const X [: Width [:Decimals]]; var S: String);
但是也
注意:但是,在使用此过程时,编译器可能会发出警告:W1057 Implicit string cast from '%s' to '%s' (Delphi)。
为什么会这样?
我想防止这种丑陋的解决方法:
function x_StrZero(N: Double; W: Integer; D: Integer = 0): String;
var
S : String;
SS : ShortString;
begin
Str(N:W:D,SS);
S := Trim(String(SS));
我已阅读为什么 Delphi 在将 ShortString 分配给字符串时会发出警告?但这并不能回答这个问题。