diff --git a/frontend/mining-app/lib/core/utils/format_utils.dart b/frontend/mining-app/lib/core/utils/format_utils.dart index d496a607..ed8d735d 100644 --- a/frontend/mining-app/lib/core/utils/format_utils.dart +++ b/frontend/mining-app/lib/core/utils/format_utils.dart @@ -32,6 +32,18 @@ String formatCompact(String? value) { } } +/// 原始数值 + 逗号千位分隔(不缩写万/亿) +String formatWithCommas(String? value) { + if (value == null || value.isEmpty) return '0'; + try { + final num = double.parse(value); + final formatter = NumberFormat('#,##0.########', 'zh_CN'); + return formatter.format(num); + } catch (e) { + return '0'; + } +} + String formatPercent(String? value, [int precision = 2]) { if (value == null || value.isEmpty) return '0%'; try { 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 18b8a807..c990f1a7 100644 --- a/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart +++ b/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart @@ -378,7 +378,7 @@ class _TradingPageState extends ConsumerState { children: [ _buildMarketDataItem( '积分股池', - market != null ? formatCompact(market.greenPoints) : null, + market != null ? formatWithCommas(market.greenPoints) : null, _orange, isLoading, ), @@ -386,7 +386,7 @@ class _TradingPageState extends ConsumerState { const SizedBox(width: 16), _buildMarketDataItem( '已销毁量', - market != null ? formatCompact(market.blackHoleAmount) : null, + market != null ? formatWithCommas(market.blackHoleAmount) : null, _red, isLoading, ),