toReadable method

String toReadable()

Formats this integer as a readable number with K, M, B, T suffixes. Automatically chooses the appropriate suffix based on value.

Example:

int value = 1500;
String readable = value.toReadable(); // '1.5K'
1500000.toReadable(); // '1.5M'
1500000000.toReadable(); // '1.5B'
1500000000000.toReadable(); // '1.5T'

Implementation

String toReadable() {
  final absValue = abs();
  final isNegative = this < 0;
  final sign = isNegative ? '-' : '';

  if (absValue < 1000) return '$sign$absValue';
  if (absValue < 1000000) return '$sign${(absValue / 1000).toStringAsFixed(1)}K';
  if (absValue < 1000000000) return '$sign${(absValue / 1000000).toStringAsFixed(1)}M';
  if (absValue < 1000000000000) return '$sign${(absValue / 1000000000).toStringAsFixed(1)}B';
  return '$sign${(absValue / 1000000000000).toStringAsFixed(1)}T';
}