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)无法用二进制浮点数精确表示。
考虑阅读以下文章:
What Every Computer Scientist Should Know About Floating-PointArithmetic