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

阿鲁诺达克

情况1:在Java6中,BigDecimal(“ 0.0050000”)。doubleValue()返回0.0050,在Java 8中,返回值为0.005

情况2:在Java6中,BigDecimal(“ 0.0250000”)。doubleValue()返回0.025,在Java 8中,返回值为0.025

在情况1:Java 6返回时,尾随多余的零。还有如何使Java 8返回与Java 6相同的输出

叶夫根尼(Evgeny Kiselev)

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

System.out.println(Double.toString(0.0050000));

因为println调用java.io.PrintStream#print(double)然后调用String.valueOf(d),所以可以在JDK中对其进行检查。

但是java.lang.Double#toString(double)在JDK6和JDK8中看起来有所不同:

return FloatingDecimal.toJavaFormatString(d);      //JDK 6
return new FloatingDecimal(d).toJavaFormatString();//JDK 8

我发现一些Java 7中已解决的JDK问题(Java 7具有与Java 8中相同的输出)

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

http://bugs.java.com/view_bug.do?bug_id=6935102

http://bugs.java.com/view_bug.do?bug_id=7039369

http://bugs.java.com/view_bug.do?bug_id=7032154

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java BigDecimal行为

来自分类Dev

Java BigDecimal格式

来自分类Dev

Swift中的Java BigDecimal

来自分类Dev

BigDecimal(Java)的内存消耗

来自分类Dev

在Java中添加BigDecimal

来自分类Dev

Java中的Bigdecimal问题

来自分类Dev

JAVA -BigDecimal介于0.00到1000.00之间

来自分类Dev

Java的BigDecimal的和Android手机的BigDecimal

来自分类Dev

BigDecimal和计算的Java舍入问题

来自分类Dev

Java的Bigdecimal.divide和舍入

来自分类Dev

在java中传递bigdecimal数字

来自分类Dev

Java最佳实践:在仅接受基本类型参数的调用中使用doubleValue()

来自分类Dev

如何在Java 8中从String数组创建BigDecimal流?

来自分类Dev

Java BigDecimal问题(从字符串转换为BigDecimal-从BigDecimal转换为字符串)

来自分类Dev

在Java中从Bigdecimal提取整数和小数部分

来自分类Dev

在Java中从Bigdecimal提取整数和小数部分

来自分类Dev

使用Java BigDecimal仍无法正确解决

来自分类Dev

在Java中从BigDecimal移除尾随零

来自分类Dev

Java中的BigDecimal:如何舍入到10?

来自分类Dev

Java BigDecimal存储垃圾值的问题

来自分类Dev

使用Java中的BigDecimal打印值

来自分类Dev

Java BigDecimal奇怪的性能行为

来自分类Dev

Java BigDecimal-需要说明

来自分类Dev

java.math.BigDecimal的划分不准确

来自分类Dev

BigDecimal中的NumberFormatException为int或long(java)

来自分类Dev

Java的BigDecimal的正确语法是什么?

来自分类Dev

Java中从float到BigDecimal的操作

来自分类Dev

BigDecimal转换为Java中的String?

来自分类Dev

如何通过for循环在java中增加BigDecimal?