Минимальное положительное значение float64 - PullRequest
0 голосов
/ 03 августа 2020

Так же, как В этом вопросе , мне нужно положительное число, которое как можно ближе к нулю, без нуля, но в Go.

1 Ответ

3 голосов
/ 03 августа 2020

В пакете math есть константа для этого и подобных значений, просто используйте это: math.SmallestNonzeroFloat64:

const (
    MaxFloat32             = 3.40282346638528859811704183484516925440e+38  // 2**127 * (2**24 - 1) / 2**23
    SmallestNonzeroFloat32 = 1.401298464324817070923729583289916131280e-45 // 1 / 2**(127 - 1 + 23)

    MaxFloat64             = 1.797693134862315708145274237317043567981e+308 // 2**1023 * (2**53 - 1) / 2**52
    SmallestNonzeroFloat64 = 4.940656458412465441765687928682213723651e-324 // 1 / 2**(1023 - 1 + 52)
)

Печать его значения:

fmt.Println(math.SmallestNonzeroFloat64)

Выходы (попробуйте на Go Playground ):

5e-324

(Примечание: оно больше константы из-за округления в fmt упаковка.)

...