Какая функция преобразует число в строку
Перейти к содержимому

Какая функция преобразует число в строку

  • автор:

Какая функция преобразует число в строку

Нередко в программах встречается ситуация, когда надо преобразовать число в строку или строку в число. Для этой цели в стандартной библиотеке языка С определены функции strtol() и snprintf() .

Из строки в число. strtol

Функция strtol() преобразует строку в число типа long int . Функция определена в заголовочном файле stdlib.h и имеет следующий прототип:

long strtol(const char *restrict str, char **restrict str_end, int base);
  • str — строка с числом, которое надо преобразовать в числовой тип. Ключевое слово restrict указывает компилятору оптимизировать код и что никакой другой параметр не будет указывать на адрес данного параметра.
  • str_end — указатель на последний символ строки. Данный параметр можно игнорировать, передавая ему значение NULL
  • base — основание, система исчисления, в которую надо преобразовать данные (значение от 2 до 36).

Результатом функции является преобразованное число типа long .

Например, преобразуем строку в число в десятичной системе:

#include #include int main(void) < const char * str = "24 flowers"; long result = strtol(str, NULL, 10); printf("Result: %ld\n", result); // Result: 24 return 0; >

В примере выше второй параметр функции никак не использовался — мы ему передавали значение NULL , и функция нормально работала. Однако он может быть полезен, если нам надо получить остаток строки, которая идет после числа:

#include #include int main(void) < const char * str = "24 flowers"; char* str_end; long result = strtol(str, &str_end, 10); printf("Result: %ld\n", result); // Result: 24 printf("Rest of the string:%s\n", str_end); // Rest of the string: flowers return 0; >

Из числа в строку. snprintf

Функция snprintf() преобразует число в отформатированную строку. Функция определена в заголовочном файле stdio.h и имеет следующий прототип:

int snprintf(char *restrict str_buffer, size_t buffer_size, const char *restrict format, . );
  • str_buffer — строка, в которую помещается преобразованное число.
  • buffer_size — максимальное количество символов строки. Функция записывает в строку buffer-size — 1 байт и добавляет концевой нулевой байт
  • format — задает формат преобразования в строку.

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

#include int main(void) < int number = 354; char str [10]; snprintf(str, sizeof str, "%d", number); printf("Result: %s\n", str); // Result: 354 return 0; >

При этом строка форматирования может содержать множество параметров:

#include int main(void) < int count = 3; double price = 79.99; char str [50]; snprintf(str, sizeof str, "Count: %d \tPrice: %.2f", count, price); printf("%s\n", str); // Count: 3 Price: 79.99 return 0; >

Как перевести число в строку в Javascript?

Чтобы преобразовать число в строку необходимо вызвать метод toString() у числа.

const number = 5555; const notNumber = number.toString(); 

теперь в notNumber находит не число, а строка. Проверить можно с помощью typeof

typeof notNumber; // 'string' 

Также это сработает с отрицательными числами

const negative = -150; const notNegativeNumber = negative.toString(); console.log(notNegativeNumber); // => '-150' - теперь это строка. 

Из этого числа мы можем взять символ.

const firstChar = notNegativeNumber[0]; console.log(firstChar); // => '-' 

Преобразуйте числовые значения в текст

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

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

Перед 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)

Figure contains an axes object. The axes object with title Sine Wave, Frequency = 0.15915 Hz contains an object of type line.

Иногда существующий текст хранится в векторах символов или массивах ячеек из символьных векторов. Однако 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 = 0b10010110
register = uint8 150
register = bitset(register,5,0)
register = uint8 134
binStr = dec2bin(register)
binStr = '10000110'

Смотрите также

Похожие темы

  • Преобразуйте текст в числовые значения
  • Шестнадцатеричные и двоичные значения
  • Преобразование между массивами datetime, числами и текстом
  • Форматирование текста
  • Unicode и значения ASCII

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

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

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

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

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

В JavaScript можно выполнить преобразование числа в строку или строки в число. В целом, система преобразования типов в JS довольно проста, но несколько отличается от других языков программирования. Чтобы она не стала для вас камнем преткновения, мы подготовили специальную статью. Разбирать будем преобразование примитивных значений.

Преобразование в строку в JavaScript

Если мы хотим что-либо представить в виде строки, речь идёт о строковом преобразовании.

К примеру, значение к строке преобразует alert(value) . Также для преобразования в строку подходит функция String(value) :

 
let value = true; alert(typeof value); // boolean value = String(value); // теперь value — это строка "true" alert(typeof value); // string

В данном случае преобразование в JavaScript выполняется очевидным способом, ведь false становится "false", а null становится "null" и так далее.

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

Преобразование в число (численное преобразование) осуществляется в математических функциях и выражениях. Допустим, когда операция деления (/) применяется не к числу:

 
alert( "6" / "2" ); // 3, Строки преобразовываются в числа

Кроме того, можно задействовать функцию Number(value) — это позволит явно преобразовать value к числу:

 
let str = "123"; alert(typeof str); // string let num = Number(str); // станет числом 123 alert(typeof num); // number

Также применяется явноe преобразование в число. Это актуально, если мы ожидаем получить, допустим, число из строкового контекста (к примеру, из текстовых полей форм).

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

 
let age = Number("Любая строка вместо числа"); alert(age); // NaN, преобразование не получилось

Существуют правила преобразования в число:

1-20219-a49f75.png

А теперь приведём примеры:

 
alert( Number(" 123 ") ); // 123 alert( Number("123z") ); // NaN (ошибка чтения числа в "z") alert( Number(true) ); // 1 alert( Number(false) ); // 0

Обратите внимание, что undefined и null и ведут себя по-разному. Если null становится нулём, то undefined приводится к NaN.

Кроме того, нужно учесть, что сложение (+) объединяет строки. Как известно, практически все математические операторы выполняют преобразование в число. Исключением является + . Если одно из слагаемых будет строкой, все остальные тоже приведутся к строкам.

Речь идёт о конкатенации (присоединении) друг к другу:

 
alert( 1 + '2' ); // '12' (строка справа) alert( '1' + 2 ); // '12' (строка слева)

Такое происходит, когда хотя бы один из аргументов — это строка. В остальных случаях значения складываются, как числа.

Логическое преобразование в JavaScript

Кроме преобразования в число и строку, в JavaScript существует и логическое преобразование. Это преобразование в JavaScript является наиболее простым и происходит в логических операторах. Вдобавок к этому, может выполняться посредством функции Boolean(value) .

Правила логического преобразования: — интуитивно «пустые» значения (типа пустой строки, 0, undefined, null и 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)

Делаем выводы

Итак, в JavaScript есть три самых популярных преобразований: в строку, в число и логическое преобразование. Вспомним основные моменты статьи для наилучшего усвоения материала: 1.Преобразование в строку — происходит, если нужно что-то вывести. Вызывается посредством String(value) . Работает очевидным образом (для примитивных значений).
2.Преобразование в число — происходит в математических операциях. Вызывается посредством Number(value) . Подчиняется правилам:

1-20219-a49f75.png

3.Логическое преобразование — происходит в логических операторах. Вызывается Boolean(value) , подчиняется правилам:

2-20219-0fa36e.png

В целом правила несложны и запоминаются довольно легко. Тем не менее начинающие разработчики на JavaScript могут допускать следующие ошибки: — undefined при численном преобразовании становится не 0 , а NaN; — при логическом преобразовании "0" и строки из одних пробелов типа " " всегда являются true.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *