gpt4 book ai didi

delphi - 是否可以使用小数分隔符强制 Floattostr/Strtofloat 函数使用小数点

转载 作者:行者123 更新时间:2023-12-03 14:40:36 36 4
gpt4 key购买 nike

目前,我将 DecimalSeparator 设置为“.”在使用这些函数的每个过程中。

在程序开始时进行全局设置会容易得多,但我发现 Delphi 似乎会定期将其设置回当前区域设置。

我需要确保所有转换都使用小数点,无论该程序在哪个国家/地区使用,因为这是此类程序以及所有文件结构和通信协议(protocol)、表单/编辑中的数字显示的标准等等都需要这样格式化。

我在另一个线程中被告知使用小数分隔符不是正确的方法,但我没有得到任何替代方案。我读过的有关该主题的其他主题似乎没有提供任何形成性指导或过于复杂。

有一个简单的“正确”方法来做到这一点吗?

最佳答案

是的,DecimalSeparator全局变量可能会在运行时被 RTL 更改,这在几年前让我很头疼,直到我意识到这一点。

问题是DecimalSeparator当 Windows 小数点分隔符发生更改(例如使用控制面板)时,由 RTL 进行更新。这似乎是一个相当小的问题。事实上,最终用户多久更改一次系统的小数分隔符?

最大的问题是 DecimalSeparator每次切换用户时变量都会更新(根据系统设置)(在 Windows 中)。这让我感到惊讶。也就是说,如果您的系统设置使用逗号 ( ',' ) 作为小数点分隔符,并且您设置 DecimalSeparator := '.'在应用程序启动时,然后 DecimalSeparator如果您切换用户,将恢复为逗号(当您切换回来时您会注意到这一点)。

您可以通过以下方式告诉 RTL 不要更新小数分隔符

Application.UpdateFormatSettings := false;

无论如何,有更好的替代方案 DecimalSeparator ,如其他答案和评论中所述。

关于delphi - 是否可以使用小数分隔符强制 Floattostr/Strtofloat 函数使用小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9814073/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com