我在我的代碼中發現了一個bug,比較Double(0.0)
與Double.MIN_VALUE
。本質上,以下返回false:在Java中,Double.MIN_VALUE是否大於零?
System.out.println(0.0 > Double.MIN_VALUE);
這怎麼可能?
我在我的代碼中發現了一個bug,比較Double(0.0)
與Double.MIN_VALUE
。本質上,以下返回false:在Java中,Double.MIN_VALUE是否大於零?
System.out.println(0.0 > Double.MIN_VALUE);
這怎麼可能?
按照javadoc for Double.MIN_VALUE,MIN_VALUE是:
的常量保持最小 正非零double類型的值
所以Double.MIN_VALUE不是消極的,它是正值這是因爲關閉,因爲Double可以變爲零(不爲零)。
Double.MIN_VALUE是可以用Java double表示的最小的正值非零值(請參閱位於http://download.oracle.com/javase/8/docs/api/java/lang/Double.html的JavaDoc)。
這裏它打印錯誤。 – 2011-04-18 21:23:58
對於.NET程序員來說:.NET中Java'Double.MIN_VALUE'的等價物是'double.Epsilon'。 double.MinValue的.NET值是* negative最大*(以絕對值)(有限)可表示的值。 – 2013-04-02 15:21:44