货币的数字格式模式

Number Format Patterns for Currency

我将此货币模式设为基于值的前缀符号(+ 或 -)

static final String _currencyWithPrefixSignAndSymbol = "+ \u00A4 0.00 ;- \u00A4 0.00";

如果值为正则模式放置一个 + 前缀,如果值为负则放置一个 - 前缀;

问题:我需要在值为 0 时删除这些符号,有没有办法在模式中执行此操作?没有在决赛中做类似 string.Replace 的事情?

作为一个选项。
从 Dart 2.7 开始,您可以创建扩展。 所以你可以像这样创建 num 扩展:

extension MyCurrencyFormat on num {
  static final _currencyWithPrefixSignAndSymbol = NumberFormat("+ \u00A4 0.00;- \u00A4 0.00");
  static final _currencyZero = NumberFormat("  \u00A4 0.00");

  String toCurrencyFormat() {
    return this == 0 ? _currencyZero.format(this) : _currencyWithPrefixSignAndSymbol.format(this);
  }
}

然后以这种方式在代码中使用它:

var str1 = 42.toCurrencyFormat(); //  + USD 42.00
var str2 = 0.toCurrencyFormat();  //  USD 0.00