JavaScript. Как выровнять вывод значения числа по определённому формату?

Есть код, который выводит различные числа в браузере `some text ${some_num} some text`. Необходимо отображать это число в формате XX.XXX. Например 12.142 , 98.234 или 00.000. т.е. необходимо отображать 2 знака с лева и 3 знака с права. Как это сделать в JS?


Ответы (3 шт):

Автор решения: zhurof

function formatNumber(num){
  num = +num;
  if(!isFinite(num)) return false;
  var result = num.toFixed(3);
  if(num >=0 && num < 10)  result = '0' + result;
  if(num < 0 && num > -10)  result = result.replace('-','-0');
  return result;
}
<input type="number" oninput="console.log(formatNumber(this.value))">

→ Ссылка
Автор решения: Dan Konshin

Попробуйте так:

new Intl.NumberFormat(options={minimumIntegerDigits:2, maximumFractionDigits: 3, minimumFractionDigits:3}).format(some_number)

Но поточнее бы что делать в случаях > 100, < 10 и тп

→ Ссылка
Автор решения: radar4ick

Еще один вариант с использованием последних фишек JS )

function format(value) {
  value = !!value ? '' + value : '0.0'; // проверяем валидность вхождения и переводим в строку
  const parts = value.split('.'); // разбиваем по точке

  return parts[0].padStart(2, '0') + '.' + (parts[1] ?? '0').padEnd(3, '0'); //возвращаем отформатированную строку и если вдруг дали нам целое число - подставляем в правую часть '0'
}


console.log(format());
console.log(format(1));
console.log(format(20));
console.log(format(300));
console.log(format(25.25));
console.log(format(250.250));

→ Ссылка