2013-02-01 64 views
1

我知道这并不是保存以便在涉及一些计算之后直接比较两个double值。 但是,我可以安全地比较是否相等从文字初始化的值与用于初始化的文字相同吗?比较两个相等的平均值而不涉及计算

例如:

Double[] dValues = [...]; 
double minValue = Double.MAX_VALUE; 
for(Double d:dValues) { 
    if(d!=null) 
    minValue = Math.min(d,minValue) 
} 

//Is that safe? 
boolean someValueFound = minValue!=Double.MAX_VALUE 
+0

请注意,还有一个预先存在的[min方法](http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#min(java.util.Collection))为收藏。 –

回答

3

是的,在这种情况下,这将是安全的。

只要你不执行任何计算/铸造等,它总是安全的。在受影响的价值 - 这可能会导致一些圆滑。

这也是安全的,因为比较发生在本地/简单类型上,如果使用Double而不是double,结果将会不同。

0

它的保存。 FloatDouble唯一的问题是计算操作时的四舍五入。

如果您想比较这些计算值允许有小差异差异。