在现代 Delphi 版本中,FormatSettings
不推荐使用全局变量(主要是因为它们不是线程安全的)。每个使用格式化变量的 RTL 函数都已被重载以将可选TFormatSettings
记录作为输入。这使您不仅可以使用特定于线程的格式设置,还可以在每次使用的基础上自定义格式设置,而不会影响任何其他格式使用。例如:
var
Fmt: TFormatSettings;
S: String;
begin
Fmt := TFormatSettings.Create; // get default settings
//
// or:
// Fmt := TFormatSettings.Create(SomeLocaleID); // get locale-specific settings
//
// or:
// Fmt := TFormatSettings.Create(SomeLocaleName); // get locale-specific settings
//
// customize its fields to use whatever you want...
Fmt.DecimalSeparator := ...;
Fmt.ThousandSeparator := ...;
// now format it...
S := FloatToStr(Value, Fmt);
end;