Не срабатывает replace внутри функции

function format(n) {
  return n.replace('.', ',') + "%";
  //return n + "%"; 
}

var h = format(3.5);
alert(h);

Нужно заменить точку на запятую, то есть результат должен быть "3,5%". Replace должен быть внутри функции, надо осуществить для ionRangeSlider. Преобразования n в число или строку так же не помогли.


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

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

передается число, у числа нет метода replace, если привести это число к строке - все заработает

function format(n) {
  return n.toString().replace('.', ',') + "%";
  //return n + "%"; 
}

var h = format(3.5);
console.log(h);

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

.replace работает со строками, а ты передаешь число

Можно решить так:

const format=(n)=>(`${n}`.replace('.', ',') + '%');

let outputin = format(3.5);
console.log(outputin);

Или через .toString() так:

const format=(n)=>(`${n.toString().split('.').join(',')}%`);

let outputin = format(3.5);
console.log(outputin);
→ Ссылка