微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 双倍我的钱:我的框架使用双打货币金额

我继承了一个项目,其中货币量使用双重类型.

更糟糕的是,它使用的框架和框架自己的类使用两倍的钱.

框架ORM还处理从(和存储)到数据库的值的检索.在数据库中,货币值是类型号(19,7),但框架ORM将它们映射到双精度.

缺少完全绕过框架类和ORM,有没有什么可以做的来准确计算货币价值?

编辑:是的,我知道应该使用BigDecimal.问题是我紧紧地关系到一个框架,例如,在这个框架中,框架com.com.pricing.ItemPriceInfo有成员double mRawTotalPrice;和double mListPrice.我公司的应用程序自己的代码扩展了,例如这个ItemPriceInfoClass.

实际上,我不能对我的公司说,“废除两年的工作,花费数十万美元,基于这个框架的代码,因为四舍五入的错误

解决方法

如果可以容忍,将货币类型视为一体.换句话说,如果你在美国工作,跟踪美分,而不是美元,如果美分提供你需要的粒度.双精度可以准确地表示高达 a very large value (2^53)的整数(不超过该值的舍入误差).

但是真的,正确的做法是完全绕过框架,并使用更合理的东西.这是框架的业余错误 – 谁知道还有什么潜在的?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐