Метод big.Float.Sub
Метод big.Float.Sub выполняет вычитание одного числа с плавающей точкой из другого.
В первый параметр передается уменьшаемое (число, из которого вычитаем),
во второй параметр передается вычитаемое (число, которое вычитаем).
Метод возвращает указатель на результат операции (тот же big.Float, для которого вызван метод).
При этом точность результата соответствует точности приемника.
Синтаксис
func (z *Float) Sub(x, y *Float) *Float
Метод Sub принимает два указателя на big.Float (x и y) и записывает результат
вычитания y из x в приемник z. Результатом является z, который также возвращается.
Пример использования
Давайте вычтем два числа с плавающей точкой:
package main
import (
"fmt"
"math/big"
)
func main() {
x := big.NewFloat(10.5)
y := big.NewFloat(3.2)
z := new(big.Float)
res := z.Sub(x, y)
fmt.Println(res.String())
}
Результат выполнения кода:
"7.3"
Пример с отрицательным результатом
Рассмотрим случай, когда результат вычитания отрицательный:
package main
import (
"fmt"
"math/big"
)
func main() {
x := big.NewFloat(5.1)
y := big.NewFloat(8.4)
z := new(big.Float)
res := z.Sub(x, y)
fmt.Println(res.String())
}
Результат выполнения кода:
"-3.3"
Пример с высокой точностью
Метод Sub сохраняет точность, заданную для приемника.
Установим точность 50 бит и выполним вычитание:
package main
import (
"fmt"
"math/big"
)
func main() {
x := big.NewFloat(1.23456789)
y := big.NewFloat(0.98765432)
z := new(big.Float).SetPrec(50)
res := z.Sub(x, y)
fmt.Println(res.Text('f', 10))
}
Результат выполнения кода:
"0.2469135700"
Смотрите также
-
метод
big.Float.Add,
который выполняет сложение чисел с плавающей точкой -
метод
big.Float.Mul,
который выполняет умножение чисел с плавающей точкой -
метод
big.Float.Quo,
который выполняет деление чисел с плавающей точкой -
метод
big.Float.SetPrec,
который устанавливает точность числа