加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Double上的数学运算结果是否完全可重复?

发布时间:2020-12-15 02:01:01 所属栏目:Java 来源:网络整理
导读:我有一个复杂的数据处理算法,使用 Java 8并使用Double作为数据类型.给定相同的输入(数十万个数据库行),该算法输出不同的Double值.有时返回值a,有时值b.这两个值交替执行每个执行. a和b之间的差值是~0.0001.我知道Double数据类型不会像Decimal那样授予确切的
我有一个复杂的数据处理算法,使用 Java 8并使用Double作为数据类型.给定相同的输入(数十万个数据库行),该算法输出不同的Double值.有时返回值a,有时值b.这两个值交替执行每个执行. a和b之间的差值是~0.0001.我知道Double数据类型不会像Decimal那样授予确切的值.但是,我不确定它是否会给出可重复的结果,假设输入完全相同.即是否有可能以不一致的方式应用舍入政策?我的目的是解释为什么我用相同的输入获得不同的值.

其他细节:我正在使用Tomcat 8运行时环境,在SAP HCP上完成部署.数据库级别的数据类型是Decimal,出于历史原因,我们需要Java级别的Double.

解决方法

订单很重要.如果每次处理的数据库行的顺序不同,它可能会产生不同的结果.这是一个简单的例子:

double d1 = 0.1;
double d2 = 0.2;
System.out.println(d1 + d1 + d2 + d2); 
System.out.println(d1 + d2 + d2 + d1);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读