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/