From 789a703ec8d2da5ae11c54009e0bf692a3dcdbfa Mon Sep 17 00:00:00 2001 From: hailin Date: Mon, 2 Mar 2026 09:25:31 -0800 Subject: [PATCH] =?UTF-8?q?fix(mining-app):=20=E4=BF=AE=E5=A4=8D=E5=89=A9?= =?UTF-8?q?=E4=BD=99=E7=A7=AF=E5=88=86=E8=82=A1=E6=98=BE=E7=A4=BA=E7=B2=BE?= =?UTF-8?q?=E5=BA=A6=E4=B8=8D=E8=B6=B3=E5=AF=BC=E8=87=B4=E4=B8=8E=E6=80=BB?= =?UTF-8?q?=E9=87=8F=E7=9C=8B=E8=B5=B7=E6=9D=A5=E4=B8=80=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:totalShares=100.02亿,totalMined≈18万,相减后≈100.0182亿, 但 formatCompact 在亿级别只保留2位小数,四舍五入后仍显示"100.02亿", 与总量无法区分。 修复: - formatCompact 新增可选 precision 参数(默认2,向后兼容) - 剩余积分股使用 precision=4,显示为"100.0182亿",可见差异 Co-Authored-By: Claude Opus 4.6 --- frontend/mining-app/lib/core/utils/format_utils.dart | 8 ++++---- .../lib/presentation/pages/trading/trading_page.dart | 8 +++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/frontend/mining-app/lib/core/utils/format_utils.dart b/frontend/mining-app/lib/core/utils/format_utils.dart index 9080844d..9c4152da 100644 --- a/frontend/mining-app/lib/core/utils/format_utils.dart +++ b/frontend/mining-app/lib/core/utils/format_utils.dart @@ -17,13 +17,13 @@ String formatNumber(num? value) { return formatter.format(value); } -String formatCompact(String? value) { +String formatCompact(String? value, {int precision = 2}) { if (value == null || value.isEmpty) return '0'; try { final num = double.parse(value); - if (num >= 1e12) return '${(num / 1e12).toStringAsFixed(2)}万亿'; - if (num >= 1e8) return '${(num / 1e8).toStringAsFixed(2)}亿'; - if (num >= 1e4) return '${(num / 1e4).toStringAsFixed(2)}万'; + if (num >= 1e12) return '${(num / 1e12).toStringAsFixed(precision)}万亿'; + if (num >= 1e8) return '${(num / 1e8).toStringAsFixed(precision)}亿'; + if (num >= 1e4) return '${(num / 1e4).toStringAsFixed(precision)}万'; // 小于1万时保留原始精度(最多8位小数,去掉尾部的0) final formatter = NumberFormat('#,##0.########', 'zh_CN'); return formatter.format(num); diff --git a/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart b/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart index ca5ccb62..4fbb818d 100644 --- a/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart +++ b/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart @@ -360,9 +360,11 @@ class _TradingPageState extends ConsumerState { _buildMarketDataItem( '剩余积分股', market != null - ? formatCompact((Decimal.parse(market.totalShares) - - Decimal.parse(market.totalMined)) - .toString()) + ? formatCompact( + (Decimal.parse(market.totalShares) - + Decimal.parse(market.totalMined)) + .toString(), + precision: 4) : null, _orange, isLoading,