gpt4 book ai didi

delphi - 当 TFormatSetting 设置为 en-US 时,如何解决 '10,000.00' 不是有效的浮点值

转载 作者:行者123 更新时间:2023-12-02 14:10:26 28 4
gpt4 key购买 nike

我正在尝试从 10,000.00 获取 Double:

aProductData.BuyPriceHT := 10000;
BuyPriceHTEdit.Text := FormatFloat('#,###.#0', aProductData.BuyPriceHT, FCurrencyFormat);
aProductData.BuyPriceHT := StrToFloat(BuyPriceHTEdit.Text, FCurrencyFormat); <-- error here

其中aProductData.BuyPriceHTDouble

FCurrencyFormat := TFormatSettings.Create('en-US'); 

注意:对于那些建议使用DecimalsInt64 类型在数据库中存储货币的好人。我已经这样做了,只是它仍然困扰着我为什么它不起作用。

最佳答案

来自 StrToFloat 的文档:

Thousand separators and currency symbols are not allowed in the string.

一般来说,您可以通过多种不同的方式来书写数字、日期和时间,因此您不希望将字符串(文本表示形式)转换为这样的值(value)观。

通常,您确保始终以数字形式存储和传输此类值(例如,作为整数、 float 或此类值的记录),并且仅在显示此类值时将其转换为文本表示形式在 GUI 中或写入文本文件。

如果您需要将其作为文本存储或传输,请使用严格定义的格式。然后您可以编写自己的转换器来毫无歧义地解释该特定格式。

关于delphi - 当 TFormatSetting 设置为 en-US 时,如何解决 '10,000.00' 不是有效的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59358932/

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