JavaScript преобразовать строку в число

Введение Управление данными - одна из фундаментальных концепций программирования. Преобразование числа в строку [/ javascript-convert-number-to-string] - обычная и простая операция. То же самое касается и другого способа преобразования String в число. Преобразование строки в число Как и в предыдущих показанных методах, JavaScript также предоставляет функции для простого преобразования строки в примитивное число. Это parseInt (), parseFloat (), Math.floor (), Math.ceil (), унарный оператор / умножение.

Вступление

Управление данными - одна из фундаментальных концепций программирования. Преобразование числа в строку - обычная и простая операция. То же самое касается и другого способа преобразования String в число.

Преобразование строки в число

Как и в случае с показанными ранее методами, JavaScript также предоставляет функции для простого преобразования String в примитивное число. Это parseInt() , parseFloat() , Math.floor() , Math.ceil() , Unary Operator / Multiply by 1 .

  • .parseInt() принимает String в качестве первого аргумента и базу, в которую эта String будет преобразована. Этот метод всегда возвращает целое число.
  • .parseFloat() принимает String в качестве аргумента и возвращает эквивалент числа с плавающей запятой.
  • Math.floor() используется для округления целого числа или числа с плавающей запятой. Возвращает ближайшее целое число, округленное в меньшую сторону.
  • Math.ceil() может использоваться для округления целого числа или числа с плавающей запятой.
  • Unary Operator Если добавить + перед строкой, она будет преобразована в число, если соответствует правильному формату.
  • Multiply by 1
    Если строку умножить на примитивное число 1 , строка станет числом.

.parseInt ()

Базу можно определить, добавив префиксы к числам, которые мы хотим проанализировать:

  • Без префикса - если префикса нет, используется система счисления 10 (десятичная).
  • 0 - Если префикс 0 , то система счисления 8 (восьмеричная). Хотя эта функция устарела.
  • 0x - Если префикс 0x , то система счисления 16 (шестнадцатеричная).

Хотя мы можем просто добавить к вызову метода необязательный аргумент, определяющий базу:

 let str = '353'; 
 let fltStr = '353.56'; 
 let binStr = '7'; 
 let nanStr = 'hello'; 
 
 parseInt(str); // 353 
 parseInt(fltStr); // 353 
 parseInt(binStr, 2); // 111 (Binary) 
 parseInt(nanStr); // NaN (Not a Number) 

.parseFloat ()

 let str = '100'; 
 let fltStr = '100.21'; 
 let nanStr = 'bye'; 
 
 parseFloat(str); // 353 
 parseFloat(fltStr); // 353.21 
 parseFloat(nanStr); // NaN 

Math.floor ()

Удивительно, но этот метод также может принимать строки, что делает его еще одним способом преобразования строки в целое число.

 let str = '100'; 
 let fltStr = '99.89'; 
 let nanStr = 'bye'; 
 
 Math.floor(str); // 100 
 Math.floor(fltStr); // 99 
 Math.floor(nanStr); // NaN 

Math.ceil ()

Очень похож на предыдущий метод, хотя, на этот раз она возвращает ближайшее целое число округляется.

Метод может принимать строки, а также преобразовывать строку в число:

 let str = '100'; 
 let fltStr = '100.21'; 
 let nanStr = 'bye'; 
 
 Math.ceil(str); // 100 
 Math.ceil(fltStr); // 101 
 Math.ceil(nanStr); // NaN 

Имейте в виду, что если вам нужно проанализировать числа с плавающей запятой, то и Math.floor и Math.ceil , вероятно, не подходят, поскольку они всегда будут преобразовывать строки в ближайший целочисленный эквивалент.

Унарный оператор

Как и в случае объединения пустой строки, существует обходной путь, который обеспечивает лучшую производительность, но не обеспечивает удобочитаемости.

 let str = '100'; 
 let fltStr = '100.21'; 
 let nanStr = 'greetings'; 
 
 +str // 100 
 +fltStr // 100.21 
 +nanStr // NaN 
 +'1000' // 1000 
 +10.25 // 10.25 

Несмотря на краткость и эффективность, это не очень известная функция JavaScript, поэтому ее не рекомендуется использовать, поскольку это может сделать ваш код не таким простым для понимания.

Умножение на 1

Этот подход, пожалуй, самый быстрый:

 let str = '100'; 
 let fltStr = '100.21'; 
 let nanStr = 'greetings'; 
 
 str * 1; // 100 
 fltStr * 1; // 100.21 
 nanStr * 1; // NaN 
 '2000' * 1; // 2000 
 '102.15' * 1; // 102.15 

Предыдущие два подхода работают просто из-за того, что JavaScript пытается ассимилировать типы данных, используемые в операторе, таком как сложение или умножение.

Использование строковых и числовых объектов

Другой способ преобразования String в число или числа в String - это создание нового объекта String или Number с ключевым словом new

 // Number to String 
 let numToStr = new String(2); // String {'2'} 
 
 // String to Number 
 let strToNum = new Number('2'); // Number {2} 

Однако такая практика не приветствуется . При использовании примитивных данных методы объекта не должны использоваться для их создания.
Создание экземпляра примитивного типа данных с помощью оболочки класса String или Number приводит к проблемам с производительностью и памятью.

Заключение

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

Для получения дополнительной информации вы можете прочитать следующие ресурсы:

comments powered by Disqus