原先 formatCompact/formatWithCommas 内部用 double 运算,double 有效精度 仅约15-16位,对大数值(如98亿)除以1e8后小数部分会丢失精度。 后端 3 个字段均为 Decimal(30,8),通过 toFixed(8) 返回 8 位小数。 新增 formatCompactFull / formatWithCommasFull 函数: - _shiftDecimalLeft: 纯字符串小数点移位,不经 double 转换,零精度损失 - _addCommasFullPrecision: 整数部分加千位逗号 + 小数部分原样保留 - formatCompactFull: 万/亿缩写 + 完整后端精度(替代 formatCompact) - formatWithCommasFull: 逗号分隔 + 完整后端精度(替代 formatWithCommas) 兑换页 (trading_page.dart) 修改: - 剩余积分股: formatCompact(precision:4) → formatCompactFull (8位小数) - 已分配积分股: formatCompact(precision:2) → formatCompactFull (8位小数) - 积分股池: formatWithCommas → formatWithCommasFull (8位小数) - 已销毁量: 保持 formatIntWithCommas 整数显示不变 贡献值页 (contribution_page.dart) 修改: - 100亿销毁剩余量: formatAmount(4位) → formatCompactFull (完整精度) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| core | ||
| data | ||
| domain | ||
| presentation | ||
| main.dart | ||