Debug 调试

迁移后金额小数位错位的定位清单

给接手迁移系统的后端工程师一份金额小数位错位排查路径,从字段定义查到对账差异。

发布于 2026-10-21 08:41:09 浏览 8

适用场景

  • 上线首日发现利息金额差几分钱
  • 回归测试通过但生产对账不平
  • 需要判断差异来自模型改写还是数据本身
PROMPT
核心账务迁移上线第二天,利息计提出现成批的几分钱偏差,今天下午营业结束前要定位原因。手上已有七步排查清单与三类改写偏差记录,三点要交比对结论。

【计划】
1. 第一步查源端定义:核对 COBOL 侧 PIC 子句的小数位,标准是拿到字段级对照表。
2. 第二步查压缩十进制:确认转换后是否丢位,标准是抽样十笔能对齐。
3. 第三步查精度设置:确认 BigDecimal 的小数位与舍入模式,标准是逐字段列出。
4. 第四步查落库与口径:库表小数位对照源端,标准是差异能归到具体某一步。

【执行】
1. 源端:利息金额定义为带两位小数的压缩十进制,整数七位,隐含两位小数。
2. 改写:部分语句缺失四舍五入,计算顺序变化,先截断后相加导致偏差。
3. 精度:改写后默认小数位为 0,赋值时被截成整数再补两位。
4. 复现:本金 1250000.00、年利率 3.25%、天数 30,期望 3342.47,实际 3342.00。

【回改计划】
1. 偏离点落在第三步:小数位为 0 是主因之一,影响比预估的计算顺序更大。
2. 更新后计划:先统一小数位与舍入模式,再逐条补舍入语句,其余步骤不变。
3. 责任判定:改写引入的偏差可复现且集中在算术语句,原程序问题表现为稳定偏移。
4. 比对要求:夜间重跑必须保留原程序中间结果,差异仍在就归档输出与库表快照。
复制后直接粘贴到模型使用
标签 调试排查金额精度