Метод big.Float.Add
Метод big.Float.Add выполняет сложение двух чисел с плавающей точкой произвольной точности. В первый параметр (приемник) передается указатель на big.Float, в который будет сохранен результат, во второй параметр передается число, которое будет прибавлено к приемнику. Метод возвращает приемник с обновленным значением, что позволяет использовать цепочки вызовов.
Синтаксис
func (z *Float) Add(x, y *Float) *Float
Метод принимает два указателя на big.Float: первое и второе слагаемые. Результат сохраняется в приемнике z, который также возвращается из метода.
Пример
Давайте сложим два простых числа с плавающей точкой:
package 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())
}
Результат выполнения кода:
"4.2"
Пример
Метод Add можно использовать в цепочке вызовов для выполнения нескольких операций:
package 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())
}
Результат выполнения кода:
"36"
Пример
Работа с числами высокой точности, где стандартный float64 может дать погрешность:
package 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))
}
Результат выполнения кода:
"1.0000000000000000000000000"
Смотрите также
-
метод
big.Float.Sub,
который выполняет вычитание чисел с плавающей точкой произвольной точности -
метод
big.Float.Mul,
который выполняет умножение чисел с плавающей точкой произвольной точности -
метод
big.Float.Quo,
который выполняет деление чисел с плавающей точкой произвольной точности -
метод
big.Float.SetPrec,
который устанавливает точность вычислений для чисел с плавающей точкой