Как я могу предотвратить округление строкового значения при преобразовании в числовое значение?
У меня есть поле ввода, которое принимает числовые значения. Я хотел бы найти метод, который преобразует это значение строки в числовое значение.
ParseInt() был первым, что удалось найти, затем toFixed().
Что у них общего? Он округляет значения до значения Integer (например, ParseInt предлагает - я знаю!).
Как преобразовать строковое представление в числовое значение, сохраняя любые десятичные значения?
Пример:
"54.3" --> 54.3
Ответы
Ответ 1
Целое число - целое число.
A Float - это число с десятичными значениями.
Зная это, вы захотите использовать parseFloat()
, который займет этот период; вместо parseInt()
, который будет округлен до ближайшего целого числа.
Подробнее см. эти документы для более подробной информации
Итак, ответ:
parseFloat("string");
вы также можете сделать это, которое известно как унарный плюс:
let a = "54.3"
a = +a;
Doing + a практически то же самое, что и делать * 1; он преобразует значение в a
в число, если это необходимо, но после этого оно не меняет значение.
Ответ 2
Вы можете использовать:
//pass String as argument
var floatVal = parseFloat("54.3");
console.log(floatVal);
Ответ 3
Вы даже можете использовать Number
как функцию числовые строки в число:
Number("54.3") // 54.3
Обратите внимание на следующее:
-
parseFloat
должен анализировать числовое значение из строки и преуспеть, если начало строки, если не все, является числовым.
-
Number
конструктор или функция проверяет, является ли целая строка числовой.
-
+"54.3"
точно совпадает с Number("54.3")
позади сцены.
Ответ 4
Вы можете преобразовать поле ввода в число, а также указать, сколько десятичных значений сохранить.
Итак, предположим, что вы делаете свои вычисления с двумя десятичными значениями, но пользователь вводит ввод "3.14151617". вы можете использовать этот метод для преобразования ввода и избавления от дополнительных десятичных значений.
var input = "3.14151617"
var num = +(parseFloat(a).toFixed(2))