getCompactPriceString property

String get getCompactPriceString

Поулчить отформатированный, компактный вариант цены

  • 100000000 -> '100 млн ₽'

Implementation

String get getCompactPriceString {
  num amount = this;
  String suffix = '';

  final suffixVariants = [
    '',
    'тыс',
    'млн',
    'млрд',
  ];

  for (int i = 0; i < suffixVariants.length; i++) {
    final result = this ~/ (pow(10, i * 3));

    if (result != 0) {
      suffix = suffixVariants[i];
      amount = result;
    }
  }

  return NumberFormat.currency(
    locale: 'ru_RU',
    symbol: '$suffix ₽',
    decimalDigits: 0,
  ).format(amount);
}