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

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

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

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

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

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

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

解决方法

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

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

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...