Шаблоны числовых форматов для валюты - PullRequest
0 голосов
/ 28 мая 2020

Я сделал этот шаблон валюты для префикса знака (+ или -) на основе значения

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

шаблон ставит префикс +, если значение положительное, и -, если отрицательное;

Проблема: Мне нужно удалить эти знаки, когда значение равно 0, есть ли способ сделать это в шаблоне? не делая что-то вроде строки. Заменить в конце?

1 Ответ

2 голосов
/ 28 мая 2020

Как вариант.
Начиная с 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
...