Tag:

比较Kotlin中的NaN

所以我最近开始热爱语言kotlin。 今天,在比较双打时,我碰到了不可避免的NaN 。 fun main(args: Array<String>) { val nan = Double.NaN println("1: " + (nan == nan)) println("2: " + (nan == (nan as Number))) println("3: " + ((nan as Number) == nan)) } 注意:( Double 是 Number 一个子类型 ) 运行上面的代码产生: 1: false 2: true 3: true 我明白,与Java中的NaN 进行比较会返回false ,所以我希望所有表达式都是false 。 这个行为如何解释? 它背后的理由是什么?