Joh*_*0te 11 java floating-point compare compareto
引自Jos Java Bloch的Effective Java - Second Edition
对于浮点字段,请使用Double.compare或Float.compare代替关系运算符,这些运算符在应用于浮点值时不遵守compareTo的常规协定.
它没有详细说明为什么会这样.
所以,我的问题是:
当与浮点值一起使用时,关系运算符以何种方式不遵守compareTo的一般约定?
来自javadoc:
public int compareTo(Double anotherDouble)
Run Code Online (Sandbox Code Playgroud)
以数字方式比较两个Double对象.当应用于原始double值时,此方法执行的比较有两种方式与Java语言数值比较运算符(<,<=,==,> =,>)执行的比较不同:Double.NaN由此考虑方法等于自身并且大于所有其他double值(包括Double.POSITIVE_INFINITY).该方法认为0.0d大于-0.0d.这确保了此方法强加的Double对象的自然顺序与equals一致.
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |