我已经根据值将这种货币模式作为前缀符号(+或-)
static final String _currencyWithPrefixSignAndSymbol = "+ \u00A4 0.00 ;- \u00A4 0.00";
如果值是正数,则模式加一个+前缀;如果值是负数,则模式-;
问题:我需要在值为0时删除这些符号,是否可以在模式中执行此操作?不用做类似字符串的事情。在最后替换吗?
最佳答案
作为一种选择。
从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