Если у меня есть строка (например, «10.00»), как мне преобразовать ее в десятичное число?Моя попытка ниже:
var val= 10; val = val.toFixed(2); val= Number(val); // output 10 and required output 10.00
Потому что вы конвертируете его обратно в число:
var val = 10; val = val.toFixed(2); val = +val; console.log(val);
Вы можете использовать Intl.NumberFormat Но будьте осторожны - Safari не поддерживается.
function customFormatter(digit) { if (typeof digit === 'string') { digit = parseFloat(digit); } var result = new Intl.NumberFormat('en-En', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(digit) return result; } console.assert( customFormatter(10) === '10.00', {msg: 'for 10 result must be "10.10"'} ); console.assert( customFormatter('10') === '10.00', {msg: 'for 10 result must be "10.10"'} ); console.log('All tests passed');
Пожалуйста, укажите значение в двойных кавычках, чтобы оно рассматривалось как строка.
var val= "10"; val= parseFloat(val).toFixed(2); console.log(val);
самый простой способ
var val= 10; var dec=parseFloat(Math.round(val * 100) / 100).toFixed(2) print(typeof dec ) print("decimal "+dec)
десятичное число выхода 10,00
Вы можете использовать parseFloat() для преобразования строки в число с плавающей запятой и toFixed() для исправления десятичных точек
parseFloat()
toFixed()
var val = "10.00"; var number = parseFloat(val).toFixed(2); console.log(number);