1、说明:只是为了记录下看源码Double/Float发现的一些以前不知道的现象。
double a = 1.7976931348623157E308D + 1; System.out.println(Double.toHexString(a)); double b = 0.0/0.0d; System.out.println(b); double c = 0.0; double d = 0.0; System.out.println(c / d);
结果:
0x1.fffffffffffffp1023
NaN
NaN
1、对于溢出没有报异常,而是返回了最小值。
2、在double中可以除一个为0.0的double值,返回NaN。
Float:
float a = Float.MAX_VALUE + 1; System.out.println(Float.toHexString(a)); float b = 0.0f/0.0f; System.out.println(b); float c = 0.0f; float d = 0.0f; System.out.println(c / d);
结果:
0x1.fffffffffffffp1023
NaNNaN
与double类似。