扩展库 / money
money
整数金额运算。
精确比例、溢出检查、守恒均分与常见货币展示。
2026-10-30:五条装箱算术入口改为先计算再读取结果,消除 GCC/TCC 参数求值顺序差异;负单位倍率增加整数精确取反,ABI、错误分类和所有权不变。新增 657 项整数参照及五条 OOM/恢复路径,settlement 双语例以七行共同输出展示算术、溢出与恢复。默认门禁保留数组相等性原正例,整包仍受该语言边界阻断;验证范围和当前证据见包内 README 与根目录台账。
2026-10-26 重建 Windows/Linux 发布物后,C 算术、主要 XLang 用例和错误分类继续通过;两平台最小源仍显示外来 XRT 数组元素正确,却与同内容语言数组比较为不等。默认门禁保留这条红色断言,不在包内绕过,整包发布验收尚未通过。
API
| 接口 | 用途 |
|---|---|
add / sub / mul | 带溢出检查的最小单位整数运算 |
scale | 精确整数比例,绝对值四舍五入 |
split | 正负金额均分,总和守恒 |
format / symbol / exponent | 常见货币展示信息,包括 RUB 的 ₽ 符号 |
rate | 近似浮点比例便捷入口 |
范例
import money
int cents = money.scale(12345, 9, 10)
println(money.format(cents, "USD")) // $111.11
金额不携带币种;正式财务比例计算优先使用 scale。成对的 C/XLang 订单范例覆盖全部公开入口,rate 只作浮点估算展示。比例允许负分母,按结果符号对绝对值四舍五入。XLang 算术越界抛 RangeError,无效参数抛 ValueError;合法参数的格式化或分摊若内存不足会报内存错误,C/XLang 均有故障及恢复测试。C 成功调用会清除前次失败的线程错误。C 范例可直接用 xl run release/extlibs/money/examples/money.c 运行;Windows 默认门禁及 Linux 包门禁已加入核心与公开 C/XLang 范例独立 EXE AOT,但当前默认门禁先停在外来数组比较的语言边界,后续 AOT 阶段不能计为完成。边界、所有权和验证命令见包内 README。