Метод big.Float.Add

Метод big.Float.Add выполняет сложение двух чисел с плавающей точкой произвольной точности. В первый параметр (приемник) передается указатель на big.Float, в который будет сохранен результат, во второй параметр передается число, которое будет прибавлено к приемнику. Метод возвращает приемник с обновленным значением, что позволяет использовать цепочки вызовов.

Синтаксис

gofunc (z *Float) Add(x, y *Float) *Float

Метод принимает два указателя на big.Float: первое и второе слагаемые. Результат сохраняется в приемнике z, который также возвращается из метода.

Пример

Давайте сложим два простых числа с плавающей точкой:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  a := big.NewFloat(1.5)
  b := big.NewFloat(2.7)
  res := new(big.Float)

  res.Add(a, b)
  fmt.Println(res.String())
}

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

go"4.2"

Пример

Метод Add можно использовать в цепочке вызовов для выполнения нескольких операций:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  a := big.NewFloat(10.5)
  b := big.NewFloat(20.3)
  c := big.NewFloat(5.2)
  res := new(big.Float)

  res.Add(a, b).Add(res, c)
  fmt.Println(res.String())
}

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

go"36"

Пример

Работа с числами высокой точности, где стандартный float64 может дать погрешность:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  a := new(big.Float)
  a.SetString("0.3333333333333333333333")

  b := new(big.Float)
  b.SetString("0.6666666666666666666667")

  res := new(big.Float)
  res.Add(a, b)

  fmt.Println(res.Text('f', 25))
}

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

go"1.0000000000000000000000000"

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

  • метод big.Float.Sub,
    который выполняет вычитание чисел с плавающей точкой произвольной точности
  • метод big.Float.Mul,
    который выполняет умножение чисел с плавающей точкой произвольной точности
  • метод big.Float.Quo,
    который выполняет деление чисел с плавающей точкой произвольной точности
  • метод big.Float.SetPrec,
    который устанавливает точность вычислений для чисел с плавающей точкой