参见英文答案 >
Floating point arithmetic not producing exact results7个
>
Why does Java implicitly (without cast) convert a `long` to a `float`?4个
public class SimplePrint {
public static void main(String[] args) {
long i = System.currentTimeMillis();
System.out.println(i);
float h = 0.0f;
i -= h;
System.out.println(i);
}
}
输出是:
1477904636902
1477904695296
但是当我改变h变量的数据类型时
public class SimplePrint {
public static void main(String[] args) {
long i = System.currentTimeMillis();
System.out.println(i);
double h = 0.0f;
i -= h;
System.out.println(i);
}
}
输出改变了:
1477904677513
1477904677513
为什么是这样 ???