【发布时间】:2017-10-17 18:25:51
【问题描述】:
我的应用程序在具有区域设置的系统上运行,其中小数分隔符是逗号。 (德尔福 10.1)
我已将点设置为我的应用程序的小数分隔符。
Application.UpdateFormatSettings := false;
FormatSettings.DecimalSeparator := '.';
Application.UpdateFormatSettings := true;
这对我来说很好。
我使用了format('%6.3f', 125.365]) 函数。
exe在系统上24*7开启..
在初始阶段,如 1 或 2 小时格式函数以点作为小数点分隔符正确返回数据,但后来它更改为本地设置逗号
说12,365。
点如何突然变成逗号?
【问题讨论】:
-
你看过documentation for UpdateFormatSettings吗? 指定当用户更改系统配置时是否自动更新格式设置。我将其保留为 False。
-
不要依赖
FormatSettings的全局设置。程序的任何部分都可以更改设置。也不是线程安全的。在您传递自己的FormatSettings记录时使用重载版本的格式化浮点数。 -
或者,顺其自然,让您的用户以他们期望的形式看到数字。
-
@LURD:谢谢...我会这样做的..它只发生在Delphi更高版本中吗?
-
我认为是从 Delphi-7 开始的。