Метод big.Rat.SetFrac

Метод big.Rat.SetFrac устанавливает значение рационального числа путем деления числителя на знаменатель. Первым параметром метод принимает числитель (указатель на big.Int), вторым — знаменатель (также указатель на big.Int). Метод автоматически сокращает дробь и возвращает указатель на само рациональное число, что позволяет использовать его в цепочках вызовов.

Синтаксис

gobig.Rat.SetFrac(num, den *big.Int) *big.Rat

Пример

Давайте создадим рациональное число из числителя 3 и знаменателя 4:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  num := big.NewInt(3)
  den := big.NewInt(4)

  r := new(big.Rat).SetFrac(num, den)
  fmt.Println(r)
}

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

go3/4

Пример

Метод SetFrac автоматически сокращает дробь. Давайте создадим дробь 6/8, которая сократится до 3/4:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  num := big.NewInt(6)
  den := big.NewInt(8)

  r := new(big.Rat).SetFrac(num, den)
  fmt.Println(r)
}

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

go3/4

Пример

Метод SetFrac также работает с отрицательными числами и нулевым знаменателем (в этом случае будет паника):

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  num := big.NewInt(-5)
  den := big.NewInt(2)

  r := new(big.Rat).SetFrac(num, den)
  fmt.Println(r)
}

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

go-5/2

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

  • метод big.Rat.FloatString,
    который преобразует рациональное число в строку с фиксированной точностью
  • функцию big.NewRat,
    которая создает рациональное число из целых значений
  • метод big.Rat,
    который представляет рациональное число с произвольной точностью
  • метод big.Float.Quo,
    который выполняет деление чисел с плавающей точкой