Agent Skills
返回列表
金额高精度计算器

金额高精度计算器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/tas20260539 这个高精度金额技能,并读取其 SKILL.md,以便在 CRM 报价、回款、佣金等本地金额加减场景中统一用 currency() 封装运算。

技能介绍

问题:分位上的尾差

在 CRM 的报价、回款、佣金场景里,金额常常在本地做加减:报价行合计、含税与未税累加、回款流水里已收与未收的核对。这类代码很容易写成 a + b 这样的裸浮点运算,于是 0.1 + 0.2 得到 0.30000000000000004,展示到分位时就会出现 ¥0.30000000000000004,或者四舍五入后与手工核算对不上。金额是业务数据,一旦进入 UI 或对账单,误差就不再是「显示问题」,而是信任问题。

技能如何工作

核心思路只有一条:所有业务金额先经 currency() 包装,再做运算,展示统一走 .format() 或等价的 toFixed(2)。

具体能力包括:

  • 封装入口:安装 currency.js 后封装 cny、sumAmounts、quoteTotal,列表与表单的金额字段统一调用,避免局部混用裸 number 加法。
  • 稳定分位:默认 2 位小数输出,0.1 + 0.2 经封装后展示为 ¥0.30;多行报价合计与手工计算一致。
  • 币种可配置:符号默认 ¥ 或空,按项目 UI 设定,例如 $、€。
  • 可读错误:输入非法时返回可读错误信息,不会把未捕获异常抛到 UI。

落地时建议按三步走:先封装好金额工具,再写自测用例验证 0.1 + 0.2 与多行合计,最后把列表和表单里的金额字段逐个替换为封装调用。

适用边界

  • 不做汇率换算:技能不发起任何网络请求,跨币种的实时折算需要另行处理。
  • 与公式求值分工:复杂表达式交给 mathjs(安全公式求值);金额累加优先用 currency.js,两者不要混在同一个通道里。
  • 不要绕过封装:在封装之外写 total += row.amount 这类裸累加,会把前面的保证全部作废。
  • 适合本地、单币种、以分为最小粒度的加减与展示;分布式分账、事务一致性等问题不在本技能范围内。

使用场景

  • CRM 报价行合计含税与未税累加,需避免裸浮点误差
  • 回款流水核对已收与未收金额,要求分位展示稳定
  • 佣金核算时多行金额累加,需与手工计算一致
  • 本地单币种金额加减,需统一封装避免混用裸 number

适合人员

  • CRM 前端工程师,需要确保报价、回款金额展示无误差
  • 财务系统开发者,处理多行金额累加与对账逻辑
  • 业务应用工程师,在表单和列表中统一金额字段处理
  • 本地工具开发者,需要高精度货币计算与稳定分位输出