#javascript #angular #typescript
#javascript #angular #typescript
Вопрос:
пример:
new Intl.NumberFormat('de-DE', { minimumFractionDigits: 2, maximumFractionDigits: 2}).format('54546464646464654650000000000000065464645')
"54.546.464.646.464.660.000.000.000.000.000.000.000.000,00"
Это потому, что когда я его форматирую, он помещает последние цифры в 0, и поэтому у вас нет точности в числах, которые вы показываете, например, в денежных суммах.
Как я мог это решить?
Ответ №1:
Возможно, вы вводите слишком большое число. Возможно, здесь можно использовать строковое решение:
function format(val, decimals) {
// You cannot use variables in regex syntax (/re/) so you must create a string
// then create the regex using RegExp constructor
const reStr = `(\d{${decimals}})
#javascript #angular #typescript
#javascript #angular #typescript
Вопрос:
пример:
new Intl.NumberFormat('de-DE', { minimumFractionDigits: 2, maximumFractionDigits: 2}).format('54546464646464654650000000000000065464645')
"54.546.464.646.464.660.000.000.000.000.000.000.000.000,00"
Это потому, что когда я его форматирую, он помещает последние цифры в 0, и поэтому у вас нет точности в числах, которые вы показываете, например, в денежных суммах.
Как я мог это решить?
Ответ №1:
Возможно, вы вводите слишком большое число. Возможно, здесь можно использовать строковое решение:
const decimalRe = new RegExp(reStr);
return val
.replace(decimalRe, ',$1') // Adds "," after last N numbers
.replace(/B(?=(d{3}) (?!d))/g, '.'); // Adds "." every 3 numbers after ","
}
const res = format("54546464646464654650000000000000065464645", 2)
console.log(res)