Константа math.SmallestNonzeroFloat64
Константа math.SmallestNonzeroFloat64 представляет собой
наименьшее положительное ненулевое число, которое может быть
представлено типом float64 в языке Go. Это значение равно
примерно 5e-324 и соответствует минимальному денормализованному
числу, которое может храниться в 64-битном формате IEEE 754.
Данная константа полезна при работе с числами, близкими к нулю,
и при проверке граничных условий в математических вычислениях.
Синтаксис
math.SmallestNonzeroFloat64
Пример
Давайте выведем значение константы math.SmallestNonzeroFloat64
и сравним его с нулем:
package main
import (
"fmt"
"math"
)
func main() {
res := math.SmallestNonzeroFloat64
fmt.Printf("SmallestNonzeroFloat64: %e\n", res)
fmt.Printf("Is zero? %v\n", res == 0)
}
Результат выполнения кода:
"SmallestNonzeroFloat64: 5.000000e-324"
"Is zero? false"
Пример
Продемонстрируем разницу между math.SmallestNonzeroFloat64
и 0 в арифметических операциях:
package main
import (
"fmt"
"math"
)
func main() {
smallest := math.SmallestNonzeroFloat64
res1 := smallest / 2
res2 := smallest + smallest
fmt.Printf("Divided by 2: %e\n", res1)
fmt.Printf("Sum: %e\n", res2)
}
Результат выполнения кода:
"Divided by 2: 0.000000e+00"
"Sum: 1.000000e-323"
Пример
Используем math.SmallestNonzeroFloat64 для проверки
граничных условий при делении:
package main
import (
"fmt"
"math"
)
func main() {
res1 := math.IsInf(1/math.SmallestNonzeroFloat64, 1)
res2 := math.IsNaN(1 / math.SmallestNonzeroFloat64)
fmt.Printf("Is +Inf? %v\n", res1)
fmt.Printf("Is NaN? %v\n", res2)
}
Результат выполнения кода:
"Is +Inf? true"
"Is NaN? false"
Смотрите также
-
константу
math.MaxFloat64,
которая представляет максимальное положительное значение float64 -
константу
math.Pi,
которая представляет значение числа π -
функцию
math.IsNaN,
которая проверяет является ли число NaN -
функцию
math.IsInf,
которая проверяет является ли число бесконечностью