java - 为什么将这两个 double 相加不能给出正确答案?

标签 java

Possible Duplicate:
Retain precision with Doubles in java

import static java.lang.System.out;
public class q2{  
    public static void main(String args[]){  
        double x=4.02, y=0.05;  
        out.println(x+y);  
    }  
}

输出:

4.069999999999999

为什么会输出那个。我以为会是4.07。请解释一下为什么在java中会发生这种情况?

很抱歉问题标题不准确。我找不到比这个更好的标题了

最佳答案

这是因为某些数字(例如 0.1)无法用二进制 float 精确表示。

考虑阅读以下文章:

关于java - 为什么将这两个 double 相加不能给出正确答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6902170/

相关文章:

java - Twilio Rest Client 和设置代理

java - 错误:: app:transformClassesWithJarMergingForDebug

java - BufferedInputStream 转换为 byte[] 以通过 Socket 发送到数据库

java - 如何禁止枚举类型中的某些枚举值到 XML 表示映射?

Java 抽象类或静态实用程序类设计选择

java - 使用 Java 的 SQL 提供程序

java - 删除项目后 Recyclerview 未更新

java - 没有找到适合 List<String, Integer> 的 groupingBy 方法

java - 将 JSON 值插入字符串

java - java中的AWS Lambda函数