货币的数字格式模式
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
我将此货币模式设为基于值的前缀符号(+ 或 -)
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