У меня была задача форматировать числа следующим образом:
1000000 -> 1 000 000, 00
Мое решение очень искажено:
public transform(value: number | string, locale: string = 'ru-RU'): string {
if (value == null) { return null; }
const number = typeof value === 'number'
? value
: parseFloat(value);
let result = number.toLocaleString(locale, this.options);
if (result.indexOf(',') !== -1) {
const arr = result.split(',');
if (arr[1].length === 1) {
arr[1] += '0';
}
result = arr[0] + ', ' + arr[1].slice(0, 2);
} else {
result += ', 00';
}
return result;
}
Как мне его улучшить? Может быть с регулярным выражением или что-то еще.