Java 6和Java 8中的舍入结果不同

用户名

我正在重写一个旧的Java 6程序,该程序编写为在Java 8中执行一些科学计算,并陷入这种情况,在这种情况下,四舍五入操作会得到不同的结果。

Java 6正在将输入四舍五入0.4999999999999999999941而Java 8正在进行输入0我在这里无法理解问题。

例如:

private void foo() {
    System.out.println(Math.round(0.499999999999999999994));
}

对于不同的Java版本,以上代码的行为有所不同。

如果有人可以阐明这个问题,那就太好了。

用户2004685

我认为您偶然发现了一个已知错误,Java 6错误后来在Java 7中得到了修复。这解释了Java 6and中奇怪的代码行为Java 8

错误信息:

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

更多信息和@OliverCharlesworth的精美解释可以在这篇文章中找到:

为什么Math.round(0.49999999999999994)返回1

摘录自他的帖子:

在Java 6(可能是更早的版本)中,round(x)被实现为floor(x + 0.5)。对于这种病理情况,这是一个规范错误。Java 7不再要求这种中断的实现。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP 和 Java 中不同输出的舍入

来自分类Dev

Java中'for each'和'for'循环的不同结果

来自分类Dev

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

来自分类Dev

为什么GradientPaint在MAC OS上的Java 6和Java 7/8中绘制方式有所不同

来自分类Dev

为什么在Java 8和Java 6中使用Swing绘画会有不同的表现?

来自分类Dev

getDeclaredMethods()在Java 7和Java 8中的行为不同

来自分类Dev

JAVA和Delphi中的数学函数给出不同的结果

来自分类Dev

Java和PHP中的SHA1结果不同

来自分类Dev

计算能力在Java和Python中的不同结果

来自分类Dev

C ++和Java中CRC32的不同结果

来自分类Dev

JAVA和Delphi中的数学函数给出不同的结果

来自分类Dev

在Java 7 vs 8中,解压缩缩进XML会产生不同的结果

来自分类Dev

JavaScript与Java中的计算结果不同

来自分类Dev

Java Netbeans程序中的不同结果

来自分类Dev

Java 6中的权限和File.renameTo奇怪的行为

来自分类Dev

在Java中舍入浮点转换

来自分类Dev

Java SE 6和Java SE 8 JRE在Windows 7上的行为有所不同(文件权限)

来自分类Dev

DecimalFormat在Oracle Java 1.7和IBM Java 1.6中给出不同的结果

来自分类Dev

DecimalFormat在Oracle Java 1.7和IBM Java 1.6中给出不同的结果

来自分类Dev

Java的8个流 - 并行执行 - 不同的结果 - 为什么?

来自分类Dev

Java8流的顺序执行和并行执行产生不同的结果?

来自分类Dev

Character.isLetterOrDigit(char)在Java 6和7中返回不同的值

来自分类Dev

Java 6 番石榴谓词到 Java 8 谓词和 Lambda

来自分类Dev

按位移位和字节强制转换在Java和C#中给出不同的结果

来自分类Dev

按位移位和字节强制转换在Java和C#中给出不同的结果

来自分类Dev

C和Java中的后缀和前缀运算符产生不同的结果

来自分类Dev

Java挪威小数点分隔符在Java 6和7中有所不同

来自分类Dev

仅Java 8的NumberFormat舍入问题

来自分类Dev

Java 7和Java 6中是否有新的数据结构?

Related 相关文章

  1. 1

    PHP 和 Java 中不同输出的舍入

  2. 2

    Java中'for each'和'for'循环的不同结果

  3. 3

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

  4. 4

    为什么GradientPaint在MAC OS上的Java 6和Java 7/8中绘制方式有所不同

  5. 5

    为什么在Java 8和Java 6中使用Swing绘画会有不同的表现?

  6. 6

    getDeclaredMethods()在Java 7和Java 8中的行为不同

  7. 7

    JAVA和Delphi中的数学函数给出不同的结果

  8. 8

    Java和PHP中的SHA1结果不同

  9. 9

    计算能力在Java和Python中的不同结果

  10. 10

    C ++和Java中CRC32的不同结果

  11. 11

    JAVA和Delphi中的数学函数给出不同的结果

  12. 12

    在Java 7 vs 8中,解压缩缩进XML会产生不同的结果

  13. 13

    JavaScript与Java中的计算结果不同

  14. 14

    Java Netbeans程序中的不同结果

  15. 15

    Java 6中的权限和File.renameTo奇怪的行为

  16. 16

    在Java中舍入浮点转换

  17. 17

    Java SE 6和Java SE 8 JRE在Windows 7上的行为有所不同(文件权限)

  18. 18

    DecimalFormat在Oracle Java 1.7和IBM Java 1.6中给出不同的结果

  19. 19

    DecimalFormat在Oracle Java 1.7和IBM Java 1.6中给出不同的结果

  20. 20

    Java的8个流 - 并行执行 - 不同的结果 - 为什么?

  21. 21

    Java8流的顺序执行和并行执行产生不同的结果?

  22. 22

    Character.isLetterOrDigit(char)在Java 6和7中返回不同的值

  23. 23

    Java 6 番石榴谓词到 Java 8 谓词和 Lambda

  24. 24

    按位移位和字节强制转换在Java和C#中给出不同的结果

  25. 25

    按位移位和字节强制转换在Java和C#中给出不同的结果

  26. 26

    C和Java中的后缀和前缀运算符产生不同的结果

  27. 27

    Java挪威小数点分隔符在Java 6和7中有所不同

  28. 28

    仅Java 8的NumberFormat舍入问题

  29. 29

    Java 7和Java 6中是否有新的数据结构?

热门标签

归档