确定给定的浮点数arg是否正常,即既不是零,也不是正常,无限,也不是NaN.
数字为零,无限或NaN很清楚它意味着什么.但它也说低于正常.什么时候是一个数字次正常?
似乎IEEE 754标准将16,777,214个32位浮点值定义为NaN,或所有可能值的0.4%.
我想知道保留这么多有用值的理由是什么,而基本上只需要2个:一个用于信令,一个用于安静的NaN.
对不起,如果这个问题很简单,我在互联网上找不到任何解释.
1)有人可以向我解释一下MIN_NORMAL和MIN_VALUE之间的区别是什么?
System.out.println(Float.MIN_NORMAL);
System.out.println(Float.MIN_VALUE);
Run Code Online (Sandbox Code Playgroud)
2)另外,为什么仍然打印1.0?
float f = Float.MIN_NORMAL + 1.0f;
System.out.println(f);
double d = Float.MIN_NORMAL + 1.0f;
System.out.println(d);
Run Code Online (Sandbox Code Playgroud)
输出:
1.17549435E-38
1.4E-45
1.0
1.0
Run Code Online (Sandbox Code Playgroud)