Функция math.Copysign

Функция math.Copysign возвращает число с величиной первого аргумента, но со знаком второго аргумента. В первый параметр мы передаем число, величина которого будет сохранена, во второй параметр мы передаем число, знак которого будет скопирован. Функция возвращает float64.

Синтаксис

gomath.Copysign(x, y)

Пример

Давайте скопируем знак положительного числа в отрицательное:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  res := math.Copysign(-10.0, 5.0)
  fmt.Println(res)
}

Результат выполнения кода:

go10

Пример

Давайте скопируем знак отрицательного числа в положительное:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  res := math.Copysign(10.0, -5.0)
  fmt.Println(res)
}

Результат выполнения кода:

go-10

Пример

Давайте скопируем знак нуля:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  res1 := math.Copysign(10.0, 0.0)
  res2 := math.Copysign(10.0, -0.0)
  fmt.Println(res1, res2)
}

Результат выполнения кода:

go10 -10

Пример

Давайте проверим, что функция корректно работает с бесконечностью:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  res := math.Copysign(math.Inf(1), -5.0)
  fmt.Println(res)
}

Результат выполнения кода:

go-Inf

Пример

Давайте скопируем знак от NaN:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  res := math.Copysign(10.0, math.NaN())
  fmt.Println(res)
}

Результат выполнения кода:

go10

Смотрите также

  • функцию math.Abs,
    которая возвращает абсолютное значение числа
  • функцию math.Signbit,
    которая определяет, является ли число отрицательным
  • функцию math.Max,
    которая возвращает большее из двух чисел
  • функцию math.Min,
    которая возвращает меньшее из двух чисел