gpt4 book ai didi

android - 如何在实时数据库中存储货币值

转载 作者:行者123 更新时间:2023-11-29 16:38:57 27 4
gpt4 key购买 nike

我有以下数据。对我来说都是 Double 类型。但是 Firebase 始终将 69.0 视为 69。然后我不能将特性价格声明为 Double,因为我遇到了异常:

firebase.database.DatabaseException: Failed to convert value of type java.lang.Long to Double

有没有办法将 Double 类型强制指定为特定属性?

enter image description here

最佳答案

如果您要将货币值存储在数据库中,考虑到 float 可能不准确,因为它们根据 IEEE 754 表示的方式规范。对此的完整讨论太长,无法放在这里。

您可以通过将所有价格值乘以某个消除数字小数部分且仅存储整数的值来解决此问题。例如,对于美元,没有比 1 美分更小的货币单位。我可以将它乘以 100 并存储一个整数 1,而不会丢失任何精度,而不是存储浮点值 .01 来表示它(可能会丢失精度)。

如果我像这样从我的价格中消除 float ,现在我只存储整数值。在客户端上阅读后,我仍然需要将它们格式化为美元和美分,这意味着我必须编写一些额外的代码来将价格值(如“399”)格式化为“$3.99”,这并不难,而且我可以做到它不会损失任何精度。

如果您要存储美元以外的货币值,您可能有不同的方案,但想法是相同的 - 将您的小数价格转换为整数以存储在数据库中,然后按照用户期望的方式格式化这些值去看他们。

关于android - 如何在实时数据库中存储货币值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51809591/

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