Golang中的NaN(Not a Number)
在Go语言中,NaN是浮点数(特别是float32和float64)中的一个特殊值,表示未定义或不可表示的数值。
go中,除数为0时并不会返回error或者nil,而是返回无穷大—> NAN(正无穷),表明数字太大溢出的情况。
NaN通常出现在无效的数学运算中,如0.0/0.0或正无穷除以正无穷
NaN的特性
- 任何与NaN的比较都返回false
- NaN不等于任何值,甚至不等于自身
- 使用math.IsNaN()函数判断
检测NaN的方法
package mainimport ("fmt""math"
)func main() {// 创建NaNnan := math.NaN()// 判断是否为NaNfmt.Println(math.IsNaN(nan)) // 输出: true// 特殊性质fmt.Println(nan == nan) // 输出: falsefmt.Println(nan != nan) // 输出: true
}