Как я могу предотвратить округление строкового значения при преобразовании в числовое значение?

У меня есть поле ввода, которое принимает числовые значения. Я хотел бы найти метод, который преобразует это значение строки в числовое значение.

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))