Метод big.Int.Cmp
Метод big.Int.Cmp сравнивает два больших целых числа из пакета math/big.
В качестве первого операнда выступает само число, для которого вызывается метод,
а в качестве второго аргумента передается число для сравнения.
Метод возвращает int: -1, если первое число меньше второго,
0, если числа равны, и 1, если первое число больше второго.
Этот метод особенно полезен при работе с числами, выходящими за пределы стандартных
целочисленных типов Go.
Синтаксис
result := x.Cmp(y)
Пример
Давайте сравним два больших числа, где первое число меньше второго:
package main
import (
"fmt"
"math/big"
)
func main() {
x := big.NewInt(123)
y := big.NewInt(456)
res := x.Cmp(y)
fmt.Println(res)
}
Результат выполнения кода:
-1
Пример
Давайте сравним два больших числа, где первое число больше второго:
package main
import (
"fmt"
"math/big"
)
func main() {
x := big.NewInt(456)
y := big.NewInt(123)
res := x.Cmp(y)
fmt.Println(res)
}
Результат выполнения кода:
1
Пример
Давайте сравним два равных больших числа:
package main
import (
"fmt"
"math/big"
)
func main() {
x := big.NewInt(789)
y := big.NewInt(789)
res := x.Cmp(y)
fmt.Println(res)
}
Результат выполнения кода:
0
Пример
Давайте проверим сравнение чисел с использованием метода SetString
для работы с очень большими числами:
package main
import (
"fmt"
"math/big"
)
func main() {
x := new(big.Int)
y := new(big.Int)
x.SetString("999999999999999999999999999999", 10)
y.SetString("999999999999999999999999999998", 10)
res := x.Cmp(y)
fmt.Println(res)
}
Результат выполнения кода:
1
Смотрите также
-
функцию
big.Int.Add,
которая выполняет сложение больших целых чисел -
функцию
big.Int.Sub,
которая выполняет вычитание больших целых чисел -
функцию
big.Int.Mul,
которая выполняет умножение больших целых чисел -
функцию
big.Int.Div,
которая выполняет деление больших целых чисел