Swift 快速负平方根
在其他语言中也是如此(),但是有人知道为什么不能根据Swift的Swift 快速负平方根,swift,math,error-handling,Swift,Math,Error Handling,在其他语言中也是如此(),但是有人知道为什么不能根据Swift的Double结构中的Double.NaN或Double.quietNaN属性检查负平方根的结果吗 以下是我在操场上运行的一些代码: sqrt(-5.0) // (not a number) Double.NaN // (not a number) Double.quietNaN // (not a number) Double.NaN == sqrt(-5.0) // false Double
Double
结构中的Double.NaN
或Double.quietNaN
属性检查负平方根的结果吗
以下是我在操场上运行的一些代码:
sqrt(-5.0) // (not a number)
Double.NaN // (not a number)
Double.quietNaN // (not a number)
Double.NaN == sqrt(-5.0) // false
Double.quietNaN == sqrt(-5.0) // false
Swift playway似乎正在使用相同的错误字符串打印
sqrt(-5.0)
、Double.NaN
和Double.quietNaN
,但它们具有不同的编程表示。我不明白为什么会这样。有什么想法吗?你可以通过检查一个数字是否等于NaN来检查它:
if aNumber != aNumber {
println("This is NaN")
}
NaN
始终不等于自身
或者您可以使用双倍数字的isNaN
属性:
let number: Double = 5.0
let nanNumber: Double = Double.NaN
number.isNaN // false
nanNumber.isNaN // true
浮点数也有一个
isNaN
属性。我在谷歌上搜索了“Swift Nan”,找到了这个答案:按照惯例,Nan会将false与任何其他值(包括Nan)进行比较。我不知道Nan会将false与任何其他值进行比较,这很好。我不知道Double符合FloatingPointNumber。。。有点奇怪。谢谢你是说aNumber!=a编号
?