Spec-Zone.ru › Go

Пакет math

  • import "math"
  • Обзор
  • Индекс
  • Примеры
  • Подкаталоги

Обзор

Пакет math предоставляет основные константы и математические функции.

Этот пакет не гарантирует идентичных результатов на разных архитектурах.

Индекс

  • Константы
  • func Abs(x float64) float64
  • func Acos(x float64) float64
  • func Acosh(x float64) float64
  • func Asin(x float64) float64
  • func Asinh(x float64) float64
  • func Atan(x float64) float64
  • func Atan2(y, x float64) float64
  • func Atanh(x float64) float64
  • func Cbrt(x float64) float64
  • func Ceil(x float64) float64
  • func Copysign(f, sign float64) float64
  • func Cos(x float64) float64
  • func Cosh(x float64) float64
  • func Dim(x, y float64) float64
  • func Erf(x float64) float64
  • func Erfc(x float64) float64
  • func Erfcinv(x float64) float64
  • func Erfinv(x float64) float64
  • func Exp(x float64) float64
  • func Exp2(x float64) float64
  • func Expm1(x float64) float64
  • func FMA(x, y, z float64) float64
  • func Float32bits(f float32) uint32
  • func Float32frombits(b uint32) float32
  • func Float64bits(f float64) uint64
  • func Float64frombits(b uint64) float64
  • func Floor(x float64) float64
  • func Frexp(f float64) (frac float64, exp int)
  • func Gamma(x float64) float64
  • func Hypot(p, q float64) float64
  • func Ilogb(x float64) int
  • func Inf(sign int) float64
  • func IsInf(f float64, sign int) bool
  • func IsNaN(f float64) (is bool)
  • func J0(x float64) float64
  • func J1(x float64) float64
  • func Jn(n int, x float64) float64
  • func Ldexp(frac float64, exp int) float64
  • func Lgamma(x float64) (lgamma float64, sign int)
  • func Log(x float64) float64
  • func Log10(x float64) float64
  • func Log1p(x float64) float64
  • func Log2(x float64) float64
  • func Logb(x float64) float64
  • func Max(x, y float64) float64
  • func Min(x, y float64) float64
  • func Mod(x, y float64) float64
  • func Modf(f float64) (int float64, frac float64)
  • func NaN() float64
  • func Nextafter(x, y float64) (r float64)
  • func Nextafter32(x, y float32) (r float32)
  • func Pow(x, y float64) float64
  • func Pow10(n int) float64
  • func Remainder(x, y float64) float64
  • func Round(x float64) float64
  • func RoundToEven(x float64) float64
  • func Signbit(x float64) bool
  • func Sin(x float64) float64
  • func Sincos(x float64) (sin, cos float64)
  • func Sinh(x float64) float64
  • func Sqrt(x float64) float64
  • func Tan(x float64) float64
  • func Tanh(x float64) float64
  • func Trunc(x float64) float64
  • func Y0(x float64) float64
  • func Y1(x float64) float64
  • func Yn(n int, x float64) float64

Примеры

Abs
Acos
Acosh
Asin
Asinh
Atan
Atan2
Atanh
Cbrt
Ceil
Copysign
Cos
Cosh
Dim
Exp
Exp2
Expm1
Floor
Log
Log10
Log2
Mod
Modf
Pow
Pow10
Remainder
Round
RoundToEven
Sin
Sincos
Sinh
Sqrt
Tan
Tanh
Trunc

Файлы пакета

abs.go acosh.go asin.go asinh.go atan.go atan2.go atanh.go bits.go cbrt.go const.go copysign.go dim.go dim_asm.go erf.go erfinv.go exp.go exp2_noasm.go exp_amd64.go exp_asm.go expm1.go floor.go floor_asm.go fma.go frexp.go gamma.go hypot.go hypot_asm.go j0.go j1.go jn.go ldexp.go lgamma.go log.go log10.go log1p.go log_asm.go logb.go mod.go modf.go modf_noasm.go nextafter.go pow.go pow10.go remainder.go signbit.go sin.go sincos.go sinh.go sqrt.go stubs.go tan.go tanh.go trig_reduce.go unsafe.go

Константы

Математические константы.

const (
    E   = 2.71828182845904523536028747135266249775724709369995957496696763 // https://oeis.org/A001113
    Pi  = 3.14159265358979323846264338327950288419716939937510582097494459 // https://oeis.org/A000796
    Phi = 1.61803398874989484820458683436563811772030917980576286213544862 // https://oeis.org/A001622

    Sqrt2   = 1.41421356237309504880168872420969807856967187537694807317667974 // https://oeis.org/A002193
    SqrtE   = 1.64872127070012814684865078781416357165377610071014801157507931 // https://oeis.org/A019774
    SqrtPi  = 1.77245385090551602729816748334114518279754945612238712821380779 // https://oeis.org/A002161
    SqrtPhi = 1.27201964951406896425242246173749149171560804184009624861664038 // https://oeis.org/A139339

    Ln2    = 0.693147180559945309417232121458176568075500134360255254120680009 // https://oeis.org/A002162
    Log2E  = 1 / Ln2
    Ln10   = 2.30258509299404568401799145468436420760110148862877297603332790 // https://oeis.org/A002392
    Log10E = 1 / Ln10
)

Пределы значений чисел с плавающей точкой. Max — наибольшее конечное значение, представимое типом. SmallestNonzero — наименьшее положительное, не равное нулю значение, представимое типом.

const (
    MaxFloat32             = 0x1p127 * (1 + (1 - 0x1p-23)) // 3.40282346638528859811704183484516925440e+38
    SmallestNonzeroFloat32 = 0x1p-126 * 0x1p-23            // 1.401298464324817070923729583289916131280e-45

    MaxFloat64             = 0x1p1023 * (1 + (1 - 0x1p-52)) // 1.79769313486231570814527423731704356798070e+308
    SmallestNonzeroFloat64 = 0x1p-1022 * 0x1p-52            // 4.9406564584124654417656879286822137236505980e-324
)

Пределы значений целых чисел.

const (
    MaxInt    = 1<<(intSize-1) - 1  // MaxInt32 or MaxInt64 depending on intSize.
    MinInt    = -1 << (intSize - 1) // MinInt32 or MinInt64 depending on intSize.
    MaxInt8   = 1<<7 - 1            // 127
    MinInt8   = -1 << 7             // -128
    MaxInt16  = 1<<15 - 1           // 32767
    MinInt16  = -1 << 15            // -32768
    MaxInt32  = 1<<31 - 1           // 2147483647
    MinInt32  = -1 << 31            // -2147483648
    MaxInt64  = 1<<63 - 1           // 9223372036854775807
    MinInt64  = -1 << 63            // -9223372036854775808
    MaxUint   = 1<<intSize - 1      // MaxUint32 or MaxUint64 depending on intSize.
    MaxUint8  = 1<<8 - 1            // 255
    MaxUint16 = 1<<16 - 1           // 65535
    MaxUint32 = 1<<32 - 1           // 4294967295
    MaxUint64 = 1<<64 - 1           // 18446744073709551615
)

func Abs

func Abs(x float64) float64

Abs возвращает абсолютное значение x.

Особые случаи:

Abs(±Inf) = +Inf
Abs(NaN) = NaN

Пример

Код:

x := math.Abs(-2)
fmt.Printf("%.1f\n", x)

y := math.Abs(2)
fmt.Printf("%.1f\n", y)

Вывод:

2.0
2.0

func Acos

func Acos(x float64) float64

Acos возвращает обратный косинус x в радианах.

Особый случай:

Acos(x) = NaN if x < -1 or x > 1

Пример

Код:

fmt.Printf("%.2f", math.Acos(1))

Вывод:

0.00

func Acosh

func Acosh(x float64) float64

Acosh возвращает обратный гиперболический косинус x.

Особые случаи:

Acosh(+Inf) = +Inf
Acosh(x) = NaN if x < 1
Acosh(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Acosh(1))

Вывод:

0.00

func Asin

func Asin(x float64) float64

Asin возвращает обратный синус x в радианах.

Особые случаи:

Asin(±0) = ±0
Asin(x) = NaN if x < -1 or x > 1

Пример

Код:

fmt.Printf("%.2f", math.Asin(0))

Вывод:

0.00

func Asinh

func Asinh(x float64) float64

Asinh возвращает обратный гиперболический синус x.

Особые случаи:

Asinh(±0) = ±0
Asinh(±Inf) = ±Inf
Asinh(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Asinh(0))

Вывод:

0.00

func Atan

func Atan(x float64) float64

Atan возвращает обратную тангенс x в радианах.

Особые случаи:

Atan(±0) = ±0
Atan(±Inf) = ±Pi/2

Пример

Код:

fmt.Printf("%.2f", math.Atan(0))

Вывод:

0.00

func Atan2

func Atan2(y, x float64) float64

Atan2 возвращает арктангенс y/x, используя знаки двух аргументов для определения четверти результата.

Особые случаи (в порядке):

Atan2(y, NaN) = NaN
Atan2(NaN, x) = NaN
Atan2(+0, x>=0) = +0
Atan2(-0, x>=0) = -0
Atan2(+0, x<=-0) = +Pi
Atan2(-0, x<=-0) = -Pi
Atan2(y>0, 0) = +Pi/2
Atan2(y<0, 0) = -Pi/2
Atan2(+Inf, +Inf) = +Pi/4
Atan2(-Inf, +Inf) = -Pi/4
Atan2(+Inf, -Inf) = 3Pi/4
Atan2(-Inf, -Inf) = -3Pi/4
Atan2(y, +Inf) = 0
Atan2(y>0, -Inf) = +Pi
Atan2(y<0, -Inf) = -Pi
Atan2(+Inf, x) = +Pi/2
Atan2(-Inf, x) = -Pi/2

Пример

Код:

fmt.Printf("%.2f", math.Atan2(0, 0))

Вывод:

0.00

func Atanh

func Atanh(x float64) float64

Atanh возвращает обратный гиперболический тангенс x.

Особые случаи:

Atanh(1) = +Inf
Atanh(±0) = ±0
Atanh(-1) = -Inf
Atanh(x) = NaN if x < -1 or x > 1
Atanh(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Atanh(0))

Вывод:

0.00

func Cbrt

func Cbrt(x float64) float64

Cbrt возвращает кубический корень из x.

Особые случаи:

Cbrt(±0) = ±0
Cbrt(±Inf) = ±Inf
Cbrt(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f\n", math.Cbrt(8))
fmt.Printf("%.2f\n", math.Cbrt(27))

Вывод:

2.00
3.00

func Ceil

func Ceil(x float64) float64

Ceil возвращает наименьшее целое значение, большее или равное x.

Особые случаи:

Ceil(±0) = ±0
Ceil(±Inf) = ±Inf
Ceil(NaN) = NaN

Пример

Код:

c := math.Ceil(1.49)
fmt.Printf("%.1f", c)

Вывод:

2.0

func Copysign

func Copysign(f, sign float64) float64

Copysign возвращает значение с модулем f и знаком sign.

Пример

Код:

fmt.Printf("%.2f", math.Copysign(3.2, -1))

Вывод:

-3.20

func Cos

func Cos(x float64) float64

Cos возвращает косинус радианного аргумента x.

Особые случаи:

Cos(±Inf) = NaN
Cos(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Cos(math.Pi/2))

Вывод:

0.00

func Cosh

func Cosh(x float64) float64

Cosh возвращает гиперболический косинус x.

Особые случаи:

Cosh(±0) = 1
Cosh(±Inf) = +Inf
Cosh(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Cosh(0))

Вывод:

1.00

func Dim

func Dim(x, y float64) float64

Dim возвращает максимальное значение из x-y или 0.

Особые случаи:

Dim(+Inf, +Inf) = NaN
Dim(-Inf, -Inf) = NaN
Dim(x, NaN) = Dim(NaN, x) = NaN

Пример

Код:

fmt.Printf("%.2f\n", math.Dim(4, -2))
fmt.Printf("%.2f\n", math.Dim(-4, 2))

Вывод:

6.00
0.00

func Erf

func Erf(x float64) float64

Erf возвращает функцию ошибок от x.

Особые случаи:

Erf(+Inf) = 1
Erf(-Inf) = -1
Erf(NaN) = NaN

func Erfc

func Erfc(x float64) float64

Erfc возвращает дополнительную функцию ошибок от x.

Особые случаи:

Erfc(+Inf) = 0
Erfc(-Inf) = 2
Erfc(NaN) = NaN

func Erfcinv 1.10

func Erfcinv(x float64) float64

Erfcinv возвращает обратную функцию Erfc(x).

Особые случаи:

Erfcinv(0) = +Inf
Erfcinv(2) = -Inf
Erfcinv(x) = NaN if x < 0 or x > 2
Erfcinv(NaN) = NaN

func Erfinv 1.10

func Erfinv(x float64) float64

Erfinv возвращает обратную функцию ошибок от x.

Особые случаи:

Erfinv(1) = +Inf
Erfinv(-1) = -Inf
Erfinv(x) = NaN if x < -1 or x > 1
Erfinv(NaN) = NaN

func Exp

func Exp(x float64) float64

Exp возвращает e**x, экспоненту x по основанию e.

Особые случаи:

Exp(+Inf) = +Inf
Exp(NaN) = NaN

Очень большие значения переполняются до 0 или +Inf. Очень маленькие значения подтекают до 1.

Пример

Код:

fmt.Printf("%.2f\n", math.Exp(1))
fmt.Printf("%.2f\n", math.Exp(2))
fmt.Printf("%.2f\n", math.Exp(-1))

Вывод:

2.72
7.39
0.37

func Exp2

func Exp2(x float64) float64

Exp2 возвращает 2**x, экспоненту x по основанию 2.

Особые случаи такие же, как у Exp.

Пример

Код:

fmt.Printf("%.2f\n", math.Exp2(1))
fmt.Printf("%.2f\n", math.Exp2(-3))

Вывод:

2.00
0.12

func Expm1

func Expm1(x float64) float64

Expm1 возвращает e**x - 1, экспоненту x по основанию e минус 1. Она более точна, чем Exp(x) - 1, когда x близко к нулю.

Особые случаи:

Expm1(+Inf) = +Inf
Expm1(-Inf) = -1
Expm1(NaN) = NaN

Очень большие значения переполняются до -1 или +Inf.

Пример

Код:

fmt.Printf("%.6f\n", math.Expm1(0.01))
fmt.Printf("%.6f\n", math.Expm1(-1))

Вывод:

0.010050
-0.632121

func FMA 1.14

func FMA(x, y, z float64) float64

FMA возвращает x * y + z, вычисленное с единственной округлением. (То есть, FMA возвращает слитное умножение-сложение x, y и z.)

func Float32bits

func Float32bits(f float32) uint32

Float32bits возвращает двоичное представление f в формате IEEE 754, с битом знака f и результатом в той же позиции бита. Float32bits(Float32frombits(x)) == x.

func Float32frombits

func Float32frombits(b uint32) float32

Float32frombits возвращает число с плавающей точкой, соответствующее двоичному представлению b в формате IEEE 754, с битом знака b и результатом в той же позиции бита. Float32frombits(Float32bits(x)) == x.

func Float64bits

func Float64bits(f float64) uint64

Float64bits возвращает двоичное представление f в формате IEEE 754, с битом знака f и результатом в той же позиции бита, и Float64bits(Float64frombits(x)) == x.

func Float64frombits

func Float64frombits(b uint64) float64

Float64frombits возвращает число с плавающей точкой, соответствующее двоичному представлению b в формате IEEE 754, с битом знака b и результатом в той же позиции бита. Float64frombits(Float64bits(x)) == x.

func Floor

func Floor(x float64) float64

Floor возвращает наибольшее целое значение, меньшее или равное x.

Особые случаи:

Floor(±0) = ±0
Floor(±Inf) = ±Inf
Floor(NaN) = NaN

Пример

Код:

c := math.Floor(1.51)
fmt.Printf("%.1f", c)

Вывод:

1.0

func Frexp

func Frexp(f float64) (frac float64, exp int)

Frexp разбивает f на нормализованную дробь и целовую степень двойки. Она возвращает frac и exp, удовлетворяющие f == frac × 2**exp, где абсолютное значение frac находится в интервале [½, 1).

Особые случаи:

Frexp(±0) = ±0, 0
Frexp(±Inf) = ±Inf, 0
Frexp(NaN) = NaN, 0

func Gamma

func Gamma(x float64) float64

Gamma возвращает функцию Гамма от x.

Особые случаи:

Gamma(+Inf) = +Inf
Gamma(+0) = +Inf
Gamma(-0) = -Inf
Gamma(x) = NaN for integer x < 0
Gamma(-Inf) = NaN
Gamma(NaN) = NaN

func Hypot

func Hypot(p, q float64) float64

Hypot возвращает Sqrt(p*p + q*q), заботясь об избежании ненужных переполнений и подтечений.

Особые случаи:

Hypot(±Inf, q) = +Inf
Hypot(p, ±Inf) = +Inf
Hypot(NaN, q) = NaN
Hypot(p, NaN) = NaN

func Ilogb

func Ilogb(x float64) int

Ilogb возвращает двоичный показатель x как целое число.

Особые случаи:

Ilogb(±Inf) = MaxInt32
Ilogb(0) = MinInt32
Ilogb(NaN) = MaxInt32

func Inf

func Inf(sign int) float64

Inf возвращает положительную бесконечность, если sign >= 0, и отрицательную бесконечность, если sign < 0.

func IsInf

func IsInf(f float64, sign int) bool

IsInf проверяет, является ли f бесконечностью, в зависимости от знака. Если sign > 0, IsInf проверяет, является ли f положительной бесконечностью. Если sign < 0, IsInf проверяет, является ли f отрицательной бесконечностью. Если sign == 0, IsInf проверяет, является ли f бесконечностью.

func IsNaN

func IsNaN(f float64) (is bool)

IsNaN проверяет, является ли f значением IEEE 754 «не число».

func J0

func J0(x float64) float64

J0 возвращает функцию Бесселя нулевого порядка первого рода.

Особые случаи:

J0(±Inf) = 0
J0(0) = 1
J0(NaN) = NaN

func J1

func J1(x float64) float64

J1 возвращает функцию Бесселя первого порядка первого рода.

Особые случаи:

J1(±Inf) = 0
J1(NaN) = NaN

func Jn

func Jn(n int, x float64) float64

Jn возвращает функцию Бесселя n-го порядка первого рода.

Особые случаи:

Jn(n, ±Inf) = 0
Jn(n, NaN) = NaN

func Ldexp

func Ldexp(frac float64, exp int) float64

Ldexp является обратным к Frexp. Она возвращает frac × 2**exp.

Особые случаи:

Ldexp(±0, exp) = ±0
Ldexp(±Inf, exp) = ±Inf
Ldexp(NaN, exp) = NaN

func Lgamma

func Lgamma(x float64) (lgamma float64, sign int)

Lgamma возвращает натуральный логарифм и знак (-1 или +1) функции Gamma(x).

Особые случаи:

Lgamma(+Inf) = +Inf
Lgamma(0) = +Inf
Lgamma(-integer) = +Inf
Lgamma(-Inf) = -Inf
Lgamma(NaN) = NaN

func Log

func Log(x float64) float64

Log возвращает натуральный логарифм x.

Особые случаи:

Log(+Inf) = +Inf
Log(0) = -Inf
Log(x < 0) = NaN
Log(NaN) = NaN

Пример

Код:

x := math.Log(1)
fmt.Printf("%.1f\n", x)

y := math.Log(2.7183)
fmt.Printf("%.1f\n", y)

Вывод:

0.0
1.0

func Log10

func Log10(x float64) float64

Log10 возвращает десятичный логарифм x. Особые случаи такие же, как у Log.

Пример

Код:

fmt.Printf("%.1f", math.Log10(100))

Вывод:

2.0

func Log1p

func Log1p(x float64) float64

Log1p возвращает натуральный логарифм от 1 плюс аргумент x. Она более точна, чем Log(1 + x) когда x близко к нулю.

Особые случаи:

Log1p(+Inf) = +Inf
Log1p(±0) = ±0
Log1p(-1) = -Inf
Log1p(x < -1) = NaN
Log1p(NaN) = NaN

func Log2

func Log2(x float64) float64

Log2 возвращает двоичный логарифм x. Особые случаи такие же, как у Log.

Пример

Код:

fmt.Printf("%.1f", math.Log2(256))

Вывод:

8.0

func Logb

func Logb(x float64) float64

Logb возвращает двоичный показатель x.

Особые случаи:

Logb(±Inf) = +Inf
Logb(0) = -Inf
Logb(NaN) = NaN

func Max

func Max(x, y float64) float64

Max возвращает большее из x или y.

Особые случаи:

Max(x, +Inf) = Max(+Inf, x) = +Inf
Max(x, NaN) = Max(NaN, x) = NaN
Max(+0, ±0) = Max(±0, +0) = +0
Max(-0, -0) = -0

Обратите внимание, что это отличается от встроенной функции max, когда вызывается с NaN и +Inf.

func Min

func Min(x, y float64) float64

Min возвращает меньшее из x или y.

Особые случаи:

Min(x, -Inf) = Min(-Inf, x) = -Inf
Min(x, NaN) = Min(NaN, x) = NaN
Min(-0, ±0) = Min(±0, -0) = -0

Обратите внимание, что это отличается от встроенной функции min, когда вызывается с NaN и -Inf.

func Mod

func Mod(x, y float64) float64

Mod возвращает остаток от деления x на y с плавающей точкой. Модуль результата меньше y, и его знак соответствует знаку x.

Особые случаи:

Mod(±Inf, y) = NaN
Mod(NaN, y) = NaN
Mod(x, 0) = NaN
Mod(x, ±Inf) = x
Mod(x, NaN) = NaN

Пример

Код:

c := math.Mod(7, 4)
fmt.Printf("%.1f", c)

Вывод:

3.0

func Modf

func Modf(f float64) (int float64, frac float64)

Modf возвращает целую и дробную части числа с плавающей точкой, которые в сумме равны f. Оба значения имеют тот же знак, что и f.

Особые случаи:

Modf(±Inf) = ±Inf, NaN
Modf(NaN) = NaN, NaN

Пример

Код:

int, frac := math.Modf(3.14)
fmt.Printf("%.2f, %.2f\n", int, frac)

int, frac = math.Modf(-2.71)
fmt.Printf("%.2f, %.2f\n", int, frac)

Вывод:

3.00, 0.14
-2.00, -0.71

func NaN

func NaN() float64

NaN возвращает значение IEEE 754 «не число».

func Nextafter

func Nextafter(x, y float64) (r float64)

Nextafter возвращает следующее представимое значение float64 после x в направлении y.

Особые случаи:

Nextafter(x, x)   = x
Nextafter(NaN, y) = NaN
Nextafter(x, NaN) = NaN

func Nextafter32 1.4

func Nextafter32(x, y float32) (r float32)

Nextafter32 возвращает следующее представимое значение float32 после x в направлении y.

Особые случаи:

Nextafter32(x, x)   = x
Nextafter32(NaN, y) = NaN
Nextafter32(x, NaN) = NaN

func Pow

func Pow(x, y float64) float64

Pow возвращает x**y, экспоненту y по основанию x.

Особые случаи:

Pow(x, ±0) = 1 for any x
Pow(1, y) = 1 for any y
Pow(x, 1) = x for any x
Pow(NaN, y) = NaN
Pow(x, NaN) = NaN
Pow(±0, y) = ±Inf for y an odd integer < 0
Pow(±0, -Inf) = +Inf
Pow(±0, +Inf) = +0
Pow(±0, y) = +Inf for finite y < 0 and not an odd integer
Pow(±0, y) = ±0 for y an odd integer > 0
Pow(±0, y) = +0 for finite y > 0 and not an odd integer
Pow(-1, ±Inf) = 1
Pow(x, +Inf) = +Inf for |x| > 1
Pow(x, -Inf) = +0 for |x| > 1
Pow(x, +Inf) = +0 for |x| < 1
Pow(x, -Inf) = +Inf for |x| < 1
Pow(+Inf, y) = +Inf for y > 0
Pow(+Inf, y) = +0 for y < 0
Pow(-Inf, y) = Pow(-0, -y)
Pow(x, y) = NaN for finite x < 0 and finite non-integer y

Пример

Код:

c := math.Pow(2, 3)
fmt.Printf("%.1f", c)

Вывод:

8.0

func Pow10

func Pow10(n int) float64

Pow10 возвращает 10**n, экспоненту n по основанию 10.

Особые случаи:

Pow10(n) =    0 for n < -323
Pow10(n) = +Inf for n > 308

Пример

Код:

c := math.Pow10(2)
fmt.Printf("%.1f", c)

Вывод:

100.0

func Remainder

func Remainder(x, y float64) float64

Remainder возвращает остаток от деления x на y в формате IEEE 754 с плавающей точкой.

Особые случаи:

Remainder(±Inf, y) = NaN
Remainder(NaN, y) = NaN
Remainder(x, 0) = NaN
Remainder(x, ±Inf) = x
Remainder(x, NaN) = NaN

Пример

Код:

fmt.Printf("%.1f", math.Remainder(100, 30))

Вывод:

10.0

func Round 1.10

func Round(x float64) float64

Round возвращает ближайшее целое число, округляя половину от нуля.

Особые случаи:

Round(±0) = ±0
Round(±Inf) = ±Inf
Round(NaN) = NaN

Пример

Код:

p := math.Round(10.5)
fmt.Printf("%.1f\n", p)

n := math.Round(-10.5)
fmt.Printf("%.1f\n", n)

Вывод:

11.0
-11.0

func RoundToEven 1.10

func RoundToEven(x float64) float64

RoundToEven возвращает ближайшее целое число, округляя привязки к четному.

Особые случаи:

RoundToEven(±0) = ±0
RoundToEven(±Inf) = ±Inf
RoundToEven(NaN) = NaN

Пример

Код:

u := math.RoundToEven(11.5)
fmt.Printf("%.1f\n", u)

d := math.RoundToEven(12.5)
fmt.Printf("%.1f\n", d)

Вывод:

12.0
12.0

func Signbit

func Signbit(x float64) bool

Signbit проверяет, является ли x отрицательным или отрицательным нулем.

func Sin

func Sin(x float64) float64

Sin возвращает синус радианского аргумента x.

Особые случаи:

Sin(±0) = ±0
Sin(±Inf) = NaN
Sin(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Sin(math.Pi))

Вывод:

0.00

func Sincos

func Sincos(x float64) (sin, cos float64)

Sincos возвращает Sin(x), Cos(x).

Особые случаи:

Sincos(±0) = ±0, 1
Sincos(±Inf) = NaN, NaN
Sincos(NaN) = NaN, NaN

Пример

Код:

sin, cos := math.Sincos(0)
fmt.Printf("%.2f, %.2f", sin, cos)

Вывод:

0.00, 1.00

func Sinh

Sinh возвращает гиперболический синус от x.

Особые случаи:

Sinh(±0) = ±0
Sinh(±Inf) = ±Inf
Sinh(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Sinh(0))

Вывод:

0.00

func Sqrt

Sqrt возвращает квадратный корень из x.

Особые случаи:

Sqrt(+Inf) = +Inf
Sqrt(±0) = ±0
Sqrt(x < 0) = NaN
Sqrt(NaN) = NaN

Пример

Код:

const (
    a = 3
    b = 4
)
c := math.Sqrt(a*a + b*b)
fmt.Printf("%.1f", c)

Вывод:

5.0

func Tan

Tan возвращает тангенс радианного аргумента x.

Особые случаи:

Tan(±0) = ±0
Tan(±Inf) = NaN
Tan(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Tan(0))

Вывод:

0.00

func Tanh

Tanh возвращает гиперболический тангенс от x.

Особые случаи:

Tanh(±0) = ±0
Tanh(±Inf) = ±1
Tanh(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Tanh(0))

Вывод:

0.00

func Trunc

Trunc возвращает целую часть x.

Особые случаи:

Trunc(±0) = ±0
Trunc(±Inf) = ±Inf
Trunc(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f\n", math.Trunc(math.Pi))
fmt.Printf("%.2f\n", math.Trunc(-1.2345))

Вывод:

3.00
-1.00

func Y0

Y0 возвращает бесселеву функцию второго рода нулевого порядка.

Особые случаи:

Y0(+Inf) = 0
Y0(0) = -Inf
Y0(x < 0) = NaN
Y0(NaN) = NaN

func Y1

Y1 возвращает бесселеву функцию второго рода первого порядка.

Особые случаи:

Y1(+Inf) = 0
Y1(0) = -Inf
Y1(x < 0) = NaN
Y1(NaN) = NaN

func Yn

Yn возвращает бесселеву функцию второго рода n-го порядка.

Особые случаи:

Yn(n, +Inf) = 0
Yn(n ≥ 0, 0) = -Inf
Yn(n < 0, 0) = +Inf if n is odd, -Inf if n is even
Yn(n, x < 0) = NaN
Yn(n, NaN) = NaN

Подкаталоги

Имя Синопсис
..
big Пакет big реализует арифметику с произвольной точностью (большие числа).
bits Пакет bits реализует функции подсчета и манипулирования битами для предопределенных целочисленных типов без знака.
cmplx Пакет cmplx предоставляет основные константы и математические функции для комплексных чисел.
rand Пакет rand реализует генераторы псевдослучайных чисел, подходящие для задач, таких как моделирование, но не следует использовать для задач, чувствительных к безопасности.
v2 Пакет rand реализует генераторы псевдослучайных чисел, подходящие для задач, таких как моделирование, но не следует использовать для задач, чувствительных к безопасности.

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/math/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API