泥点紧凑显示不应因四舍五入虚增 #254

Closed
opened 2026-09-02 18:07:20 +08:00 by suzmii · 0 comments
Member

问题现象

泥点余额达到 1万 后会使用紧凑格式显示。当前单位换算通过 toFixed(1) 保留一位小数,会四舍五入出高于实际余额的展示值:

  • 12,999 泥点当前显示为 1.3万,实际不足 1.3万
  • 19,999 泥点当前显示为 2.0万,视觉上像是已经达到 2万

原因定位

共用函数 packages/shared/src/utils/format.ts 中的 formatMudPointCount 在紧凑模式下先除以 10,000,再调用 toFixed(1),因此发生向上舍入。共享泥点钱包入口的收起态使用了该紧凑模式;展开详情、充值弹窗等位置仍显示完整数值。

期望规则

紧凑显示保留一位小数,但应按显示精度向下截断,不能展示出高于实际余额的数值:

  • 12,999 → 1.2万
  • 19,999 → 1.9万
  • 低于 1万 时继续显示完整数字,例如 9,999,不新增“千”单位。

修改思路

调整 formatMudPointCount 的紧凑换算逻辑,在格式化前按一位小数精度向下取整;不改变非紧凑模式和现有调用范围。

验收标准

  • 9,999 显示为 9,999
  • 10,000 显示为 1.0万
  • 12,999 显示为 1.2万
  • 19,999 显示为 1.9万
  • 钱包入口可见文本与无障碍名称保持一致。

规则确认后再同步需求表并开始开发。

## 问题现象 泥点余额达到 `1万` 后会使用紧凑格式显示。当前单位换算通过 `toFixed(1)` 保留一位小数,会四舍五入出高于实际余额的展示值: - `12,999` 泥点当前显示为 `1.3万`,实际不足 `1.3万`; - `19,999` 泥点当前显示为 `2.0万`,视觉上像是已经达到 `2万`。 ## 原因定位 共用函数 `packages/shared/src/utils/format.ts` 中的 `formatMudPointCount` 在紧凑模式下先除以 `10,000`,再调用 `toFixed(1)`,因此发生向上舍入。共享泥点钱包入口的收起态使用了该紧凑模式;展开详情、充值弹窗等位置仍显示完整数值。 ## 期望规则 紧凑显示保留一位小数,但应按显示精度向下截断,不能展示出高于实际余额的数值: - `12,999 → 1.2万`; - `19,999 → 1.9万`; - 低于 `1万` 时继续显示完整数字,例如 `9,999`,不新增“千”单位。 ## 修改思路 调整 `formatMudPointCount` 的紧凑换算逻辑,在格式化前按一位小数精度向下取整;不改变非紧凑模式和现有调用范围。 ## 验收标准 - `9,999` 显示为 `9,999`; - `10,000` 显示为 `1.0万`; - `12,999` 显示为 `1.2万`; - `19,999` 显示为 `1.9万`; - 钱包入口可见文本与无障碍名称保持一致。 规则确认后再同步需求表并开始开发。
suzmii self-assigned this 2026-09-02 18:07:20 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GenarrativeAI/Genarrative#254