go中,除数为0时并不会返回error或者nil,而是返回无穷大---> NAN(正无穷),表明数字太大溢出的情况
函数math.IsNaN可以测试一个数值是否是NaN,math.NaN的返回值是一个NaN值。
任何值跟NaN比较的结果都是false,比如:
package main
import (
"fmt"
"math"
"reflect"
//"os"
)
func main(){
a:= math.NaN()
if a == math.NaN() {
fmt.Println("--------",a)
}
fmt.Println(a)
fmt.Println(reflect.TypeOf(a))
fmt.Println(reflect.TypeOf(math.NaN()))
}
执行结果:
那么怎么处理NAN值呢,用math.IsNaN()
func main(){
a:= math.NaN()
if math.IsNaN(a) {
fmt.Println("--------",a)
}
fmt.Println(a)
fmt.Println(reflect.TypeOf(a))
fmt.Println(reflect.TypeOf(math.NaN()))
}
执行结果: