Преобразование строки в десятичное число в JavaScript - PullRequest
0 голосов
/ 27 июня 2019

Если у меня есть строка (например, «10.00»), как мне преобразовать ее в десятичное число?Моя попытка ниже:

   var val= 10;
   val = val.toFixed(2);
   val= Number(val); // output 10 and required output 10.00

Ответы [ 5 ]

2 голосов
/ 27 июня 2019

Потому что вы конвертируете его обратно в число:

var val = 10;
val = val.toFixed(2);
val = +val;
console.log(val);
0 голосов
/ 27 июня 2019

Вы можете использовать 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');
0 голосов
/ 27 июня 2019

Пожалуйста, укажите значение в двойных кавычках, чтобы оно рассматривалось как строка.

var val= "10";
val= parseFloat(val).toFixed(2);
console.log(val);
0 голосов
/ 27 июня 2019

самый простой способ

var val= 10; 
var dec=parseFloat(Math.round(val * 100) / 100).toFixed(2)
print(typeof dec )
print("decimal "+dec)

десятичное число выхода 10,00

0 голосов
/ 27 июня 2019

Вы можете использовать parseFloat() для преобразования строки в число с плавающей запятой и toFixed() для исправления десятичных точек

var val = "10.00";
var number = parseFloat(val).toFixed(2);
console.log(number);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...