Функция math.NaN
Функция math.NaN возвращает значение типа float64,
представляющее собой специальное состояние "не число"
(Not-a-Number) в стандарте IEEE 754. Это значение используется
для обозначения результатов операций, которые не имеют
математического смысла, например, деление нуля на ноль,
умножение нуля на бесконечность или вычисление квадратного
корня из отрицательного числа.
Функция не принимает никаких параметров и всегда возвращает
одно и то же значение NaN.
Синтаксис
math.NaN()
Пример
Давайте создадим значение NaN с помощью функции
math.NaN и выведем его на экран:
package main
import (
"fmt"
"math"
)
func main() {
nan := math.NaN()
fmt.Println(nan)
}
Результат выполнения кода:
"NaN"
Пример
Значение NaN обладает уникальным свойством: оно не равно
самому себе. Давайте проверим это с помощью оператора сравнения:
package main
import (
"fmt"
"math"
)
func main() {
nan := math.NaN()
res := nan == nan
fmt.Println(res)
}
Результат выполнения кода:
false
Пример
Для проверки, является ли значение NaN, следует
использовать специальную функцию math.IsNaN,
а не оператор сравнения. Давайте рассмотрим это на примере:
package main
import (
"fmt"
"math"
)
func main() {
nan := math.NaN()
if math.IsNaN(nan) {
fmt.Println("Value is NaN")
}
}
Результат выполнения кода:
"Value is NaN"
Пример
Любая арифметическая операция с участием NaN также
возвращает NaN. Давайте проверим это, сложив
NaN с обычным числом:
package main
import (
"fmt"
"math"
)
func main() {
nan := math.NaN()
res := nan + 10.0
fmt.Println(math.IsNaN(res))
}
Результат выполнения кода:
true
Смотрите также
-
функцию
math.IsNaN,
которая проверяет, является ли число значением "не число" -
функцию
math.IsInf,
которая проверяет, является ли число бесконечностью -
функцию
math.Inf,
которая возвращает положительную или отрицательную бесконечность -
функцию
math.Max,
которая возвращает большее из двух чисел