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,