std.math.numeric 包

功能介绍

math.numeric 包对基础类型可表达范围之外提供扩展能力。

例如:

  1. 支持大整数(BigInt);
  2. 支持高精度十进制数(Decimal)类型;
  3. 提供常见的数学运算能力包括高精度运算规则。

API 列表

函数

函数名功能
abs(BigInt)求一个 BigInt 的绝对值。
sqrt(BigInt)BigInt 的算数平方根,向下取整。
gcd(BigInt, BigInt)求两个 BigInt 的最大公约数。总是返回非负数(相当于绝对值的最大公约数)。
lcm(BigInt, BigInt)求两个 BigInt 的的最小公倍数。除了入参有 0 时返回 0 外,总是返回正数(相当于绝对值的最小公倍数)。
max(BigInt, BigInt)计算并返回两个 BigInt 中较大的那个。
min(BigInt, BigInt)计算并返回两个 BigInt 中较小的那个。
countOne(BigInt)计算并返回入参 BigInt 的二进制补码中 1 的个数。

枚举

枚举功能
RoundingMode舍入规则枚举类,共包含 6 中舍入规则。除包含 IEEE 754 浮点数规定约定的 5 种舍入规则外,提供使用较多的 “四舍五入” 舍入规则。
OverflowStrategy溢出策略枚举类,共包含 3 种溢出策略。BigInt 类型、Decimal 类型转换为整数类型时,允许指定不同的溢出处理策略。

结构体

结构体功能
BigIntBigInt 定义为任意精度(二进制)的有符号整数。仓颉的 struct BigInt 用于任意精度有符号整数的计算,类型转换等。
DecimalContextDecimalContext 对象作用于用户对 Decimal 操作过程中,对生成结果指定上下文,设定结果的精度与对应舍入规则。
DecimalDecimal 用于表示任意精度的有符号的十进制数。允许操作过程指定上下文,指定结果精度及舍入规则。提供基础类型 (Int、UInt、String、Float等) 与 BigInt 类型互相转换能力,支持 Decimal 对象基本属性查询等能力,支持基础数学运算操作,提供对象比较、hash、字符串打印等基础能力。