函数
func abs(BigInt)
public func abs(i: BigInt): BigInt
功能:求一个 BigInt 的绝对值。
参数:
返回值:
示例:
import std.math.numeric.*
main() {
let n: BigInt = BigInt(-23)
let abs = abs(n)
println(abs)
}
运行结果:
23
func abs(Decimal)
public func abs(d: Decimal): Decimal
功能:求一个 Decimal 的绝对值。
参数:
返回值:
示例:
import std.math.numeric.*
main() {
let d: Decimal = Decimal("-1.23")
let abs = abs(d)
println(abs)
}
运行结果:
1.23
func countOne(BigInt)
public func countOne(i: BigInt): Int64
功能:计算并返回入参 BigInt 的二进制补码中 1 的个数。
参数:
返回值:
示例:
import std.math.numeric.*
main() {
let i: BigInt = BigInt(255)
let countOne = countOne(i)
println(countOne)
}
运行结果:
8
func gcd(BigInt, BigInt)
public func gcd(i1: BigInt, i2: BigInt): BigInt
功能:求两个 BigInt 的最大公约数。总是返回非负数(相当于绝对值的最大公约数)。
参数:
返回值:
- BigInt - 返回
i1
和i2
的最大公约数,总是返回非负数。
示例:
import std.math.numeric.*
main() {
let i1: BigInt = BigInt(-36)
let i2: BigInt = BigInt(48)
let gcd = gcd(i1, i2)
println(gcd)
}
运行结果:
12
func lcm(BigInt, BigInt)
public func lcm(i1: BigInt, i2: BigInt): BigInt
功能:求两个 BigInt 的的最小公倍数。除了入参有 0 时返回 0 外,总是返回正数(相当于绝对值的最小公倍数)。
参数:
返回值:
- BigInt - 返回
i1
和i2
的最小公倍数,当入参有 0 时返回 0,其余情况返回正数。
示例:
import std.math.numeric.*
main() {
let i1: BigInt = BigInt(-36)
let i2: BigInt = BigInt(48)
let lcm = lcm(i1, i2)
println(lcm)
}
运行结果:
144
func round(Decimal, RoundingMode)
public func round(d: Decimal, roundingMode!: RoundingMode = RoundingMode.HALF_EVEN): Decimal
功能:计算 Decimal 的舍入值,根据舍入方式向邻近的整数舍入。
参数:
- d: Decimal - 需要计算舍入值的 Decimal。
- roundingMode!: RoundingMode - 舍入规则。
返回值:
异常:
- OverflowException - 当舍入操作结果标度值溢出时,抛出此异常。
func sqrt(BigInt)
public func sqrt(i: BigInt): BigInt
功能:求 BigInt 的算术平方根,向下取整。
参数:
返回值:
异常:
- IllegalArgumentException - 如果入参为负数,则抛此异常。
示例:
import std.math.numeric.*
main() {
let n: BigInt = BigInt(23)
let sqrt = sqrt(n)
println(sqrt)
}
运行结果:
4
func sqrt(Decimal)
public func sqrt(d: Decimal): Decimal
功能:求 Decimal 的算术平方根。结果为无限小数场景时,默认采用 IEEE 754-2019 decimal128 对结果进行舍入。
参数:
返回值:
异常:
- IllegalArgumentException - 如果入参为负数,则抛此异常。
- OverflowException - 当计算平方根操作结果标度值溢出时,抛出此异常。
示例:
import std.math.numeric.*
main() {
let n: Decimal = Decimal("36")
let sqrt = sqrt(n)
println(sqrt)
}
运行结果:
6