Функция math.Modf

Функция math.Modf разделяет число с плавающей точкой на целую и дробную части. Первый параметр функции — это значение типа float64, которое необходимо разбить. Функция возвращает два значения типа float64: целую часть (целое число в виде float64) и дробную часть (значение от 0 до 1 по модулю). При этом знак дробной части соответствует знаку исходного числа.

Синтаксис

gomath.Modf(x)

Пример

Давайте разделим положительное число 3.14 на целую и дробную части:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  intPart, fracPart := math.Modf(3.14)
  fmt.Printf("Целая часть: %v, Дробная часть: %v\n", intPart, fracPart)
}

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

go"Целая часть: 3, Дробная часть: 0.14"

Пример

Теперь разделим отрицательное число -2.71:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  intPart, fracPart := math.Modf(-2.71)
  fmt.Printf("Целая часть: %v, Дробная часть: %v\n", intPart, fracPart)
}

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

go"Целая часть: -2, Дробная часть: -0.71"

Пример

Разделим число -5.0, у которого дробная часть равна нулю:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  intPart, fracPart := math.Modf(-5.0)
  fmt.Printf("Целая часть: %v, Дробная часть: %v\n", intPart, fracPart)
}

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

go"Целая часть: -5, Дробная часть: 0"

Пример

Разделим число 0.123, у которого целая часть равна нулю:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  intPart, fracPart := math.Modf(0.123)
  fmt.Printf("Целая часть: %v, Дробная часть: %v\n", intPart, fracPart)
}

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

go"Целая часть: 0, Дробная часть: 0.123"

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

  • функцию math.Floor,
    которая округляет число вниз до ближайшего целого
  • функцию math.Ceil,
    которая округляет число вверх до ближайшего целого
  • функцию math.Trunc,
    которая отбрасывает дробную часть числа
  • функцию math.Round,
    которая округляет число до ближайшего целого по правилам математики