我怎样才能说服我的老板使用 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 美分的账单只是一回事。
维修会花费更多的时间,也无法确认(四舍五入的地方不一定都能找到正确的地方)。
套餐优惠:
如果你的国家使用小数逗号,软件小数点,一起做。数字右对齐、千位分隔符也是如此。
现在我们有一个现有的 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 美分的账单只是一回事。
维修会花费更多的时间,也无法确认(四舍五入的地方不一定都能找到正确的地方)。
套餐优惠: 如果你的国家使用小数逗号,软件小数点,一起做。数字右对齐、千位分隔符也是如此。