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
}