amount_utils.dart 754 B

123456789101112131415161718
  1. import 'package:intl/intl.dart';
  2. import '../navigation/host_app_channel.dart';
  3. /// 显示用金额格式化:千分位分隔 + ERP 动态小数位(无 ¥ 前缀)。
  4. /// 示例: 1234567.89 → "1,234,567.89"(poiAmt=2)
  5. String formatAmount(num amount) {
  6. if (amount.isNaN || amount.isInfinite) return '0';
  7. final digits = HostAppChannel.poiAmt;
  8. final formatter = NumberFormat('#,##0.${'0' * digits}', 'en_US');
  9. return formatter.format(amount);
  10. }
  11. /// 输入框用金额格式化:仅保留 ERP 动态小数位,无千分位分隔。
  12. /// 示例: 1234567.89 → "1234567.89"(poiAmt=2)
  13. String formatAmountNumeric(num amount) {
  14. if (amount.isNaN || amount.isInfinite) return '0';
  15. return amount.toStringAsFixed(HostAppChannel.poiAmt);
  16. }