Java中小数运算精度问题是如何产生的?

更新于
2026-07-26 18:53:01
21阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计460个文字,预计阅读时间需要2分钟。

Java中小数运算精度问题是如何产生的?

直接输出以下结果:

直接在上Demodouble a=4.0; double b=3.6; System.out.println(a - b);我们可以看到运行结果是0.4;直接在上Demo double a=4.0; double b=3.6; System.out.println(a - b);我们可以看到运行结果是0.4;

话不多说直接上Demodoublea4.0;doubleb3.6;System.out.println(a-b);我们可以看到运行结果是0.3999999999999999,期

话不多说直接上Demo 

double a = 4.0;double b = 3.6;System.out.println(a - b);

我们可以看到运行结果是0.3999999999999999,期望结果是0.4。

原因简单来说:2进制的小数无法十分精准的表达十进制的小数,计算机在计算十进制小数运算的时候需要先转换成2进制进行计算,这个过程中出现了一些误差。

阅读全文

本文共计460个文字,预计阅读时间需要2分钟。

Java中小数运算精度问题是如何产生的?

直接输出以下结果:

直接在上Demodouble a=4.0; double b=3.6; System.out.println(a - b);我们可以看到运行结果是0.4;直接在上Demo double a=4.0; double b=3.6; System.out.println(a - b);我们可以看到运行结果是0.4;

话不多说直接上Demodoublea4.0;doubleb3.6;System.out.println(a-b);我们可以看到运行结果是0.3999999999999999,期

话不多说直接上Demo 

double a = 4.0;double b = 3.6;System.out.println(a - b);

我们可以看到运行结果是0.3999999999999999,期望结果是0.4。

原因简单来说:2进制的小数无法十分精准的表达十进制的小数,计算机在计算十进制小数运算的时候需要先转换成2进制进行计算,这个过程中出现了一些误差。

阅读全文