formatNumberLocale function
Formats number with decimalPlaces and optional groupSep (e.g. ',').
Implementation
String formatNumberLocale(
num value, {
int decimalPlaces = 0,
String groupSep = ',',
}) {
final String raw = decimalPlaces <= 0
? value.round().toString()
: value.toStringAsFixed(decimalPlaces);
if (groupSep.isEmpty) return raw;
final List<String> parts = raw.split('.');
final String intPart = parts[0];
final String sign = intPart.startsWith('-') ? '-' : '';
final String digits = sign.isEmpty ? intPart : intPart.substringSafe(1);
final StringBuffer sb = StringBuffer(sign);
for (int i = 0; i < digits.length; i++) {
if (i > 0 && (digits.length - i) % 3 == 0) sb.write(groupSep);
sb.write(digits[i]);
}
if (parts.length > 1) {
sb
..write('.')
..write(parts[1]);
}
return sb.toString();
}