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

Java 我怎样才能说服我的老板使用BigDecimal,java,finance,Java,Finance,现在我们有了一个处理财务问题的现有Java应用程序。但它是在几年前使用double类型而不是BigDecimal实现的。我可以展示这两种类型之间的差异,但是对于我们得到的样本,当我们使用BigDecimal时,由double引起的小错误可能不会导致不同的结果。那么,我怎样才能让我的老板相信花点时间重写这个应用程序是值得的呢?或者是否有法律或官方规定在金融行业使用BigDecial是一种标准?这个问题已经被回答了很多次了 除了BigDecimal的优点外,double/float面临的一个典型问题

现在我们有了一个处理财务问题的现有Java应用程序。但它是在几年前使用double类型而不是BigDecimal实现的。我可以展示这两种类型之间的差异,但是对于我们得到的样本,当我们使用BigDecimal时,由double引起的小错误可能不会导致不同的结果。那么,我怎样才能让我的老板相信花点时间重写这个应用程序是值得的呢?或者是否有法律或官方规定在金融行业使用BigDecial是一种标准?这个问题已经被回答了很多次了

除了BigDecimal的优点外,double/float面临的一个典型问题是:


如果h1和h2与金钱有关,那么您就有一个问题:

到BigDecimal的转换是在固定的时间内完成的,当您有一个非常大的代码库或者您想要迁移/测试每个模块时,可能是增量的

会计很可能有自己的立场:无论是赞成还是反对,我都可以对差额进行会计核算

由double引起的数据错误将不定期发生,至少不会很好地向外界展示公司。0.01美分的账单只是一回事

修理将花费更多的时间,而且也不能肯定,因为可能无法在正确的位置找到所有的圆角

一揽子交易:
如果您所在的国家使用小数点逗号,软件将使用小数点,请一起执行。数字的右对齐、千位分隔符也是如此。

任何编码“法则”最终都会被打破。你的老板为什么仅仅因为某个变量的数据类型问题而想要重新创建此应用程序,这可能是重复的吗?这是由double引起的错误,重新发明轮子是没有意义的。为什么你确信要使用它?请记下这些论点并陈述出来。对不起,这个问题注定会引起争议,并且可能会结束,因为它主要是基于观点的。另外,始终使用BigDecimal、long或Joda Money的答案是正确的,但重写函数应用程序可能不正确。无论如何,如果您的测试证明您的解决方案在所有业务需要的情况下都能工作,那么您就没事了。如果你不能证明这一点,你就必须通过向老板展示潜在的威胁来说服他。没有任何法律或任何官方文件可以让这项任务变得容易。
double h1 = 100.266d;  
double h2 = 100.0d;  

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