首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 6和Java 8之间的BigDecimal.doubleValue

Java 6和Java 8之间的BigDecimal.doubleValue
EN

Stack Overflow用户
提问于 2015-04-27 19:40:47
回答 1查看 777关注 0票数 4

案例1:在Java6 BigDecimal(“0.0050000”)中,.doubleValue()返回0.0050,在Java8中返回值为0.005

案例2:在Java6 BigDecimal(“0.0250000”)中,.doubleValue()返回0.025,在Java8中返回值为0.025

在第1种情况中: Java 6返回时附加尾随为零。知道吗??另外,如何使Java 8返回与Java 6相同的输出

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-28 12:56:40

System.out.println在java6和java 8中的工作方式是不同的。此外,我们还讨论了双倍,BigDecimal在这里不是一个问题。我们可以将此示例简化为:

代码语言:javascript
复制
System.out.println(Double.toString(0.0050000));

由于println调用java.io.PrintStream#print(double),然后调用String.valueOf(d),所以可以在JDK中检查它。

但是java.lang.Double#toString(double)在JDK6和JDK8上看起来不一样:

代码语言:javascript
复制
return FloatingDecimal.toJavaFormatString(d);      //JDK 6
return new FloatingDecimal(d).toJavaFormatString();//JDK 8

我发现了一些JDK问题,这些问题已经在java 7中解决了(java 7的输出与java 8的输出相同)

我认为这个问题可能是一个原因:

id=6935102

id=7039369

id=7032154

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29904514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档