Преобразование типов
Чаще всего операторы и функции автоматически приводят переданные им значения к нужному типу.
Например, alert автоматически преобразует любое значение к строке. Математические операторы преобразуют значения к числам.
Есть также случаи, когда нам нужно явно преобразовать значение в ожидаемый тип.
Пока что мы не говорим об объектах
В этой главе мы не касаемся объектов. Сначала мы разберём преобразование примитивных значений.
Мы разберём преобразование объектов позже, в главе Преобразование объектов в примитивы.
Строковое преобразование
Строковое преобразование происходит, когда требуется представление чего-либо в виде строки.
Например, alert(value) преобразует значение к строке.
Также мы можем использовать функцию String(value) , чтобы преобразовать значение к строке:
let value = true; alert(typeof value); // boolean value = String(value); // теперь value это строка "true" alert(typeof value); // string
Преобразование происходит очевидным образом. false становится «false» , null становится «null» и т.п.
Численное преобразование
Численное преобразование происходит в математических функциях и выражениях.
Например, когда операция деления / применяется не к числу:
alert( "6" / "2" ); // 3, строки преобразуются в числа
Мы можем использовать функцию Number(value) , чтобы явно преобразовать value к числу:
let str = "123"; alert(typeof str); // string let num = Number(str); // становится числом 123 alert(typeof num); // number
Явное преобразование часто применяется, когда мы ожидаем получить число из строкового контекста, например из текстовых полей форм.
Если строка не может быть явно приведена к числу, то результатом преобразования будет NaN . Например:
let age = Number("Любая строка вместо числа"); alert(age); // NaN, преобразование не удалось
Правила численного преобразования:
| Значение | Преобразуется в… |
|---|---|
| undefined | NaN |
| null | 0 |
| true / false | 1 / 0 |
| string | Пробельные символы (пробелы, знаки табуляции \t , знаки новой строки \n и т. п.) по краям обрезаются. Далее, если остаётся пустая строка, то получаем 0 , иначе из непустой строки «считывается» число. При ошибке результат NaN . |
alert( Number(" 123 ") ); // 123 alert( Number("123z") ); // NaN (ошибка чтения числа на месте символа "z") alert( Number(true) ); // 1 alert( Number(false) ); // 0
Учтите, что null и undefined ведут себя по-разному. Так, null становится нулём, тогда как undefined приводится к NaN .
Большинство математических операторов также производит данное преобразование, как мы увидим в следующей главе.
Логическое преобразование
Логическое преобразование самое простое.
Происходит в логических операциях (позже мы познакомимся с условными проверками и подобными конструкциями), но также может быть выполнено явно с помощью функции Boolean(value) .
- Значения, которые интуитивно «пустые», вроде 0 , пустой строки, null , undefined и NaN , становятся false .
- Все остальные значения становятся true .
alert( Boolean(1) ); // true alert( Boolean(0) ); // false alert( Boolean("Привет!") ); // true alert( Boolean("") ); // false
Заметим, что строка с нулём «0» — это true
Некоторые языки (к примеру, PHP) воспринимают строку «0» как false . Но в JavaScript, если строка не пустая, то она всегда true .
alert( Boolean("0") ); // true alert( Boolean(" ") ); // пробел это тоже true (любая непустая строка это true)
Итого
Существует 3 наиболее широко используемых преобразования: строковое, численное и логическое.
Строковое – Происходит, когда нам нужно что-то вывести. Может быть вызвано с помощью String(value) . Для примитивных значений работает очевидным образом.
Численное – Происходит в математических операциях. Может быть вызвано с помощью Number(value) .
Преобразование подчиняется правилам:
| Значение | Становится… |
|---|---|
| undefined | NaN |
| null | 0 |
| true / false | 1 / 0 |
| string | Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то получаем 0 , иначе из непустой строки «считывается» число. При ошибке результат NaN . |
Логическое – Происходит в логических операциях. Может быть вызвано с помощью Boolean(value) .
| Значение | Становится… |
|---|---|
| 0 , null , undefined , NaN , «» | false |
| любое другое значение | true |
Большую часть из этих правил легко понять и запомнить. Особые случаи, в которых часто допускаются ошибки:
- undefined при численном преобразовании становится NaN , не 0 .
- «0» и строки из одних пробелов типа » » при логическом преобразовании всегда true .
В этой главе мы не говорили об объектах. Мы вернёмся к ним позже, в главе Преобразование объектов в примитивы, посвящённой только объектам, сразу после того, как узнаем больше про основы JavaScript.
Преобразование строки в число в Python. Особенности преобразования числа в строку

Иногда нам нужно выполнить преобразование строки в целое число либо в число с плавающей точкой. Потребность в этом возникает для осуществления ряда операций. Как это сделать в Python, мы сейчас и поговорим.
Чтобы осуществить преобразование строки в целое число либо число с плавающей точкой, в Python используют функции int и float. Если вы захотите выполнить преобразование без применения данных функций, то получите ошибку. Например, к ошибке приведёт следующий код:
str_a = ’50’ b = 10 c = str_a + b print (c)Преобразование строки в целое число с помощью int() в Python
Давайте посмотрим на следующий участок кода:
str_a = '50' b = 10 c = int(str_a) + b print ("The value of c = ",c)С его помощью мы выведем значение переменной «c», которое будет представлять собой сумму переменных «str_a» и «b».
Преобразуем десятичную строку в число с плавающей точкой в Python
Для преобразования строки в число с плавающей точкой мы можем использовать float:
#Преобразование string во float str_a = '50.85' b = 10.33 c = float(str_a) + b print ("The value of c = ",c)Однако учтите, что если вы захотите задействовать тут функцию int() , это приведёт к ошибке.
Преобразуем список строковых чисел в список целых чисел в Python
Бывает, что в Python необходимо выполнить преобразование строки из чисел, содержащихся в списке. В таких случаях нам поможет генератор списков. Таким образом создаётся новый список, где можно использовать функцию int() в каждой итерации:
#Преобразование string в int в списке str_lst = ['1', '2', '3'] int_lst = [int(x) for x in str_lst] print (int_lst)Мы выведем новый список, который будет состоять из целых чисел, полученных из строк.
Преобразуем список строк в список чисел с плавающей точкой в Python
Аналогично можно применять float вместо int для выполнения преобразования списка, включающего в себя строки из целых чисел:
#Преобразование string во float в списке str_lst = ['10.505', '2.3', '3.99'] float_lst = [float(x) for x in str_lst] print (float_lst)Преобразование строки с запятыми в число в Python
Что делать, если у нас строка наподобие «1,000,000»? Если мы попробуем выполнить её преобразование с помощью функций int() либо float() , мы получим ошибку.
Одно из решений — применение import locale:
locale.setlocale(locale.LC_ALL, ‘en_US.UTF-8’ )Приём работает, но он не идеален. Другое решение — заменить запятые на пустые строки, а потом применить уже известную нам функцию int:
str_a = '5,123,000' int_b = int(str_a.replace(',','')) print ("The integer value",int_b)Результат — целое значение. Это же решение мы можем использовать и для преобразования строки в число с плавающей точкой в Python.
Преобразование строки в число при расчёте високосного года в Python
Как известно, пользовательский ввод в «Пайтоне» воспринимается как строка. К примеру, в следующем коде программа попросит пользователя ввести год, а после ввода значений программа сообщит, является ли этот год високосным. При этом введённое значение сначала будет преобразовано в целое число, а потом будет задействована формула расчёта високосного года:
#Расчёт високосного года try: Y = int(input("Enter a Year? ")) exceptValueError: print ("You may only enter digits in '2000' format!") else: leap_or_not = Y%4 == 0 ifleap_or_not: print ("Leap year") else: print ("Not a leap year")Таким образом происходит преобразование вводимой строки в целое число, а потом это число применяется для расчёта.
Как преобразовать целое число в строку в Python?
При выполнении преобразования целых чисел в строки используется функция str() . Она принимает объект, который может иметь тип int, float, double и так далее.
Давайте посмотрим на пример преобразования переменной int в строку, которая потом применяется как строка для конкатенации:
#Преобразование int в string a_string = "str function for int to string" a_num = 456 print (a_string + str(a_num))Результат будет следующим:
str function for int to string456Кстати, если бы целочисленная переменная была нами использована без str() , результатом стала бы ошибка TypeError.
Преобразуйте числовые значения в текст
В этом примере показано, как преобразовать числовые значения в текст и добавить их к большим частям текста. Например, вы можете хотеть добавить метку или заголовок на график, где метка включает номер, который описывает характеристику графика.
Преобразование в строки
Перед R2016b преобразуйте в векторы символов с помощью num2str .
Чтобы преобразовать номер в строку, которая представляет его, используйте string функция.
str = string(pi)str = "3.1416"string функция преобразует числовой массив в массив строк, имеющий тот же размер.
A = [256 pi 8.9e-3]; str = string(A)str = 1x3 string "256" "3.141593" "0.0089"Можно задать формат синтезируемого текста с помощью compose функция, которая принимает спецификаторы формата для точности, ширины поля и экспоненциального представления.
str = compose("%9.7f",pi)str = "3.1415927"Если вход является числовым массивом, то compose возвращает массив строк. Возвратите массив строк, который представляет числа с помощью экспоненциального представления.
A = [256 pi 8.9e-3]; str = compose("%5.2e",A)str = 1x3 string "2.56e+02" "3.14e+00" "8.90e-03"Добавьте числа в строки
Перед R2016b преобразуйте числа в векторы символов и конкатенируйте символы в скобках, [] .
Самый простой способ объединить текст и числа состоит в том, чтобы использовать plus оператор + ). Этот оператор автоматически преобразует числовые значения в строки, когда другие операнды являются строками.
Например, постройте синусоиду. Вычислите частоту волны и добавьте строку, представляющую то значение в заголовке графика.
X = linspace(0,2*pi); Y = sin(X); plot(X,Y) freq = 1/(2*pi); str = "Sine Wave, Frequency = " + freq + " Hz"str = "Sine Wave, Frequency = 0.15915 Hz"title(str)
Иногда существующий текст хранится в векторах символов или массивах ячеек из символьных векторов. Однако plus оператор также автоматически преобразует те типы данных к строкам, когда другой операнд является строкой. Чтобы объединить числовые значения с теми типами данных, сначала преобразуйте числовые значения в строки, и затем используйте plus объединить текст.
str = 'Sine Wave, Frequency = ' + string(freq) + ' Hz'>str = "Sine Wave, Frequency = 0.15915 Hz"Коды символов
Если ваши данные содержат целые числа, которые представляют значения Unicode®, используют char функционируйте, чтобы преобразовать значения в соответствующие символы. Выход является вектором символов или массивом.
u = [77 65 84 76 65 66]; c = char(u)c = 'MATLAB'Преобразование значений Unicode также позволяет вам включать специальные символы в текст. Например, значение Unicode для символа степени равняется 176. Добавить char(176) к строке используйте plus .
deg = char(176); temp = 21; str = "Temperature: " + temp + deg + "C"str = "Temperature: 21°C"Перед R2016b используйте num2str преобразовать числовое значение в вектор символов, и затем конкатенировать.
str = ['Temperature: ' num2str(temp) deg 'C']str = 'Temperature: 21°C'Шестнадцатеричные и двоичные значения
Начиная с R2019b
Можно представлять шестнадцатеричные и двоичные значения в коде или текст использования или использование литералов . Рекомендуемый способ представлять их состоит в том, чтобы записать им как литералы. Можно записать шестнадцатеричные и бинарные литералы с помощью 0x и 0b префиксы соответственно. Однако может иногда быть полезно представлять такие значения как текст, с помощью dec2hex или dec2bin функции.
Например, установите немного в двоичном значении. Если вы задаете двоичное значение с помощью литерала, то оно хранится как целое число. После установки одного из битов отобразите новое двоичное значение как текст с помощью dec2bin функция.
register = 0b10010110register = uint8 150register = bitset(register,5,0)register = uint8 134binStr = dec2bin(register)binStr = '10000110'Смотрите также
Похожие темы
- Преобразуйте текст в числовые значения
- Шестнадцатеричные и двоичные значения
- Преобразование между массивами datetime, числами и текстом
- Форматирование текста
- Unicode и значения ASCII
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Какая функция преобразует число в строку

Когда мы складываем 5 и 5 , то ожидаем увидеть вывод — 10 . Однако, получаем 55 и видим, что тип данных — не число, а строка.
Язык JavaScript автоматически преобразовал переменную a в строку и соединил ее с переменной b в одну строку.
Чтобы тип данных был ожидаем для разработчика, используют функции преобразования. Рассмотрим их подробно.
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека фронтендера»
Преобразование в строку в JavaScript
Чтобы преобразовать число в строку используют функцию String() .
var a = 5; //число a = String(a);//преобразует переменную а в строку alert(typeof(a));//выведет string
Преобразование в число в JavaScript
Чтобы преобразовать данные в число используют функцию Number() . Попробуем преобразовать строковое значение 5 в число.
var a = "5";//строка a = Number(a); //преобразует переменную а в число alert(typeof(a));//выведет number
Если вы будете использовать в математических выражениях строки, то JavaScript автоматически преобразует переменные в числа.
var a = "5"; //строка var b = "5"; //строка var c = a/b; alert(c);//выведет 1, что мы и ожидаем при делении 5 на 5 alert(typeof(c));// выведет number
Логическое преобразование в JavaScript
Для логического преобразования используют функцию Boolean() .
Данные типа пустая строка , NaN , undefined , null — преобразуются в false .
Все остальные данные: числа и строки, преобразуются в true .
var a = "null"; alert(Boolean(a));//выведет false
var a = "0"; alert(Boolean(a));//выведет true
var a = " ";//пробел alert(Boolean(a));//выведет true
var a = "";//пусто, без пробелов и других знаков alert(Boolean(a));//выведет false
Подведем итоги
JavaScript может преобразовывать данные автоматически:
- число преобразуются в строки, если их использовать в выражениях со строкой;
- если в строках находятся числа и с ними выполняют математические операции, то они преобразуются в числа.
Для преобразования используют функции:
- String() — преобразует данные в строки.
- Number() — преобразует данные в числа.
- Boolean() — преобразует данные в логические значения true или false.
Материалы по теме
- ☕ Методы массивов в JavaScript для новичков: советы, рекомендации и примеры
- ☕ 5 крутых функций JavaScript, о которых не знает большинство разработчиков
- ☕ Твой JavaScript должен быть проще: 10 приемов современного разработчика
