В 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; // Преобразует строку