Преобразовать в число
Описание
Блок преобразует переданное значение (строку или число) в число одного из двух видов:
- обычное число — целое число (
int) или число с плавающей точкой (float). Подходит для большинства вычислений; - точное число — число с фиксированной точностью (
Decimal). Используется там, где недопустима погрешность двоичного представления, например при работе с денежными суммами.
Перед преобразованием из строки удаляются все пробелы (в том числе разделители разрядов вида 1 234,56), а разделитель дробной части приводится к точке. Если строка пустая или не является числом, блок завершает работу с ошибкой и сообщает, какое значение не удалось преобразовать.
Описание параметров
Состав параметров блока зависит от выбранного вида числа: для обычного числа доступен только входной разъём, для точного числа появляются дополнительные настройки.
-
Преобразовать в — значение, которое требуется преобразовать (строка или число);
Тип данных:
str (Строка) | int (Целое число) | float (Число с плавающей точкой)Пример:
1 234,56 -
Вид числа — выпадающий список рядом с входным разъёмом:
Тип данных:
dropdown (Выпадающий список)Пример:
обычное число- обычное число — результат возвращается как
intилиfloat; - точное число — результат возвращается как
Decimalилиint;
- обычное число — результат возвращается как
-
Точность — режим задания количества знаков после запятой (только для точного числа):
Тип данных:
dropdown (Выпадающий список)Пример:
Авто- Авто — количество знаков берётся из исходного значения без округления;
- Фиксированная — у блока появляется входной разъём, в который передаётся количество знаков после запятой (целое число от 0 до 10). Если разъём оставить пустым, используется точность 0 знаков;
-
Разделитель дробной части — какой символ в исходной строке считать разделителем дробной части (только для точного числа):
Тип данных:
dropdown (Выпадающий список)Пример:
Авто- Авто — разделитель определяется автоматически: если в строке есть и точка, и запятая, разделителем считается тот символ, который стоит правее, а второй трактуется как разделитель разрядов;
- , — запятая. Точки в строке удаляются как разделители разрядов;
- . — точка. Запятые в строке удаляются как разделители разрядов;
-
Режим округления — правило округления до заданной точности (только для точного числа с фиксированной точностью):
Тип данных:
dropdown (Выпадающий список)Пример:
Обычный- Обычный — математическое округление, половина округляется от нуля (
2.5 → 3); - Банковский — половина округляется до ближайшего чётного (
2.5 → 2,3.5 → 4); - Усечение — лишние знаки отбрасываются без округления (
2.99 → 2); - От нуля — округление всегда в сторону увеличения модуля числа (
2.01 → 3).
- Обычный — математическое округление, половина округляется от нуля (
Возвращаемое значение
Тип результата зависит от вида числа, настройки точности и исходного значения:
| Вид числа | Исходное значение | Тип результата | Результат |
|---|---|---|---|
| Обычное число | Целое число или строка с целым числом без дробной части: 5, "-12", "1 000" | int | 5, -12, 1000 |
| Обычное число | Дробное число или строка с дробной частью либо экспонентой: 5.0, "5.0", "5,5", "1e3" | float | 5.0, 5.0, 5.5, 1000.0 |
| Точное число, точность Авто | Любое число: "5", "5.00" | Decimal | 5, 5.00 |
| Точное число, фиксированная точность 0 | Любое число: "7", "2.5" (режим округления Обычный) | int | 7, 3 |
| Точное число, фиксированная точность больше 0 | Любое число: "7" с точностью 2 | Decimal | 7.00 |
Тип данных: int (Целое число) | float (Число с плавающей точкой) | decimal (Точное число)
Пример: 1234.56
Пример использования
В данном примере строка с суммой из документа 1 234,567 преобразуется в точное число с двумя знаками после запятой, результат показывается пользователю.
- В переменную amount_text записывается строка
1 234,567; - Добавляется блок Преобразовать в, в разъём передаётся переменная amount_text;
- В выпадающем списке выбирается точное число;
- В параметре Точность выбирается Фиксированная, в появившийся разъём передаётся число
2; - Параметры Разделитель дробной части и Режим округления оставляются со значениями Авто и Обычный;
- Результат сохраняется в переменную amount и показывается блоком Уведомление пользователя.
Результат
Вывод результата на экран: