Google Apps Script: Как преобразовать строку в число?

В Google Apps Script, как и в любом другом языке программирования, часто возникает необходимость преобразовать строковое значение в числовое. Это может потребоваться при обработке данных, полученных из Google Sheets, форм, API или других источников, где числовые данные изначально представлены в виде строк.

Зачем преобразовывать строки в числа?

Преобразование строк в числа необходимо для выполнения математических операций, сравнений, сортировки и других задач, требующих числовых данных. Например, невозможно сложить две строки, их сначала необходимо преобразовать в числа. Также, при работе с данными из Google Sheets, значения, прочитанные из ячеек, могут быть представлены как строки, даже если визуально они выглядят как числа.

Обзор методов преобразования

В Google Apps Script существует несколько способов преобразования строк в числа:

  • parseInt(): Преобразует строку в целое число.
  • parseFloat(): Преобразует строку в число с плавающей точкой.
  • Унарный плюс (+): Преобразует строку в число (целое или с плавающей точкой).

Использование parseInt() для преобразования в целые числа

parseInt() – это встроенная функция JavaScript, доступная в Google Apps Script, предназначенная для преобразования строки в целое число.

Синтаксис и примеры использования parseInt()

Синтаксис:

parseInt(string, radix);
  • string: Строка, которую необходимо преобразовать.
  • radix: Необязательный параметр, указывающий систему счисления (основание) числа в строке. Если не указан, radix определяется автоматически (обычно как 10).

Примеры:

/**
 * Преобразует строку в целое число, используя parseInt().
 * @param {string} str - Строка для преобразования.
 * @return {number} - Целое число или NaN, если преобразование невозможно.
 */
function stringToInt(str) {
  var num = parseInt(str);
  Logger.log(num); // Выводит преобразованное число или NaN
  return num;
}

stringToInt("42"); // Выведет 42
stringToInt("  42  "); // Выведет 42 (пробелы в начале и конце игнорируются)
stringToInt("42px"); // Выведет 42 (преобразует до первого нечислового символа)
stringToInt("hello"); // Выведет NaN (Not a Number)
Реклама

Обработка некорректных входных данных (NaN)

Если parseInt() не может преобразовать строку в число, она возвращает NaN (Not a Number). Важно проверять результат на NaN перед использованием, чтобы избежать ошибок в дальнейших вычислениях.

var result = parseInt("abc");
if (isNaN(result)) {
  Logger.log("Преобразование не удалось");
}

Указание системы счисления (основания) в parseInt()

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

var binaryString = "1010";
var decimalNumber = parseInt(binaryString, 2); // Преобразует двоичную строку в десятичное число
Logger.log(decimalNumber); // Выведет 10

Применение parseFloat() для преобразования в числа с плавающей точкой

parseFloat() – это еще одна встроенная функция JavaScript, используемая для преобразования строки в число с плавающей точкой (дробное число).

Синтаксис и примеры использования parseFloat()

Синтаксис:

parseFloat(string);
  • string: Строка, которую необходимо преобразовать.

Примеры:

/**
 * Преобразует строку в число с плавающей точкой, используя parseFloat().
 * @param {string} str - Строка для преобразования.
 * @return {number} - Число с плавающей точкой или NaN, если преобразование невозможно.
 */
function stringToFloat(str) {
  var num = parseFloat(str);
  Logger.log(num);
  return num;
}

stringToFloat("3.14"); // Выведет 3.14
stringToFloat("  3.14  "); // Выведет 3.14 (пробелы в начале и конце игнорируются)
stringToFloat("3.14abc"); // Выведет 3.14 (преобразует до первого нечислового символа)
stringToFloat("abc"); // Выведет NaN

Обработка десятичных разделителей и экспоненциальной записи

parseFloat() корректно обрабатывает десятичные разделители (точку) и числа в экспоненциальной форме.

Logger.log(parseFloat("1.234"));   // Output: 1.234
Logger.log(parseFloat("1.234e+2")); // Output: 123.4

Разница между parseInt() и parseFloat()

Основное различие между parseInt() и parseFloat() заключается в том, что parseInt() преобразует строку в целое число, отбрасывая дробную часть, а parseFloat() преобразует строку в число с плавающей точкой, сохраняя дробную часть.

Logger.log(parseInt("3.14")); // Output: 3
Logger.log(parseFloat("3.14")); // Output: 3.14

Использование оператора унарного плюса (+)

Оператор унарного плюса (+) – это краткий способ преобразования строки в число в JavaScript и, следовательно, в Google Apps Script.

Преобразование строки в число с помощью +

Для преобразования строки в число достаточно поставить + перед строкой.

«`javascript
var str = «123»;
var num = +str; // Преобразует строку


Добавить комментарий