我怎样才能说服我的老板使用 BigDecimal

How can I convince my boss to use BigDecimal

现在我们有一个现有的 Java 应用程序来处理财务问题。但它是几年前使用 "double" 类型而不是 "BigDecimal" 实现的。我可以展示这两种类型之间的区别,但是对于我们得到的样本,由 "double" 引起的那些小错误可能不会导致我们使用 "BigDecimal" 时不同的结果。那么我如何才能说服我的老板,值得花一些时间重写这个应用程序呢?或者是否有法律或官方声明在金融行业使用 BigDecial 是一种标准?谢谢。

这个问题已经回答了很多次了。

除了 BigDecimal 的好处之外,还有一个 double/float 面临的典型问题(来自 here):

double h1 = 100.266d;  
double h2 = 100.0d;  

//Outputs 0.26600000000000534 instead of 0.266
System.out.println(h1-h2);  

如果 h1 和 h2 与钱有关,那你就有问题了:)

到 BigDecimal 的转换是在固定时间内完成的,当你有一个非常大的代码库或者你想每个模块 migrate/test 时,可能是增量的。

会计可能有一个立场:要么赞成,要么反对 ("I can keep an account of cent differences")。

double造成的数据错误会不定期发生,至少不能很好地对外展示公司。 0.01 美分的账单只是一回事。

维修会花费更多的时间,也无法确认(四舍五入的地方不一定都能找到正确的地方)。

套餐优惠: 如果你的国家使用小数逗号,软件小数点,一起做。数字右对齐、千位分隔符也是如此。