Найти в Дзене

Trace Mode 7. Форматируем вещественные и целочисленные числа.

Оглавление

Список авторских статей о Trace Mode 7.

Многие из нас в процессе разработки проекта сталкиваются с необходимостью работы с числами в определенном формате. Разберем основные ситуации.

Задаем формат для всего проекта.

Для каналов Analog (вещественные) и Discrete (целочисленные) в настройках каналов можно задать формат (атрибут 246)

В зависимости от заданного формата, значение канала везде будет отображаться в заданном формате.

Подробно о форматах можно прочитать в

Справочная Система - Приложения - Форматы - Формат СИ вывода чисел

Разберем основные варианты для Analog

F0 (%g, %lf) - отображение float- и doublefloat-чисел без форматирования (так как есть).

F1 (%.1f, %18.1f) - отображение одного знака "после запятой" (654,321 будет 654,3).

F2 (%.2f, %18.2f) - отображение двух знаков "после запятой" (654,321 будет 654,32).

Разберем основные варианты для Discrete

F0 (%lX, %X) - отображение discrete-чисел в шестнадцатеричном (HEX) формате (знакомое десятеричное "256" будет шестнадцатеричным "100").

F1 (%ld, %hd) - отображение discrete-чисел в десятичном (DEC) формате с учетом знака (знакомое десятеричное отрицательное "-256" будет тем же десятичным "-256", а шестнадцатеричное "0x10" будет десятичным "16").

F2 (%lu, %hu) - отображение discrete-чисел в десятичном (DEC) формате без учета знака (знакомое десятеричное отрицательное "-256" будет десятичным "4294967040").

Задаем формат для Документа (Call.Document).

Можно задать формат для отображения значения параметра в рамках конкретного Документа и конкретного места в документа (т.е., одно и тоже число можно отобразить в разном формате в одном документе). В шаблоне Документа необходимо указывать аргумент этого шаблона (обычно, @<имя аргумента>, например @arg_001).

Подробно в

Справочная Система - Генерация документов - Редактор шаблонов документов - Вставка значения переменной

Для отображения отформатированного числа

@(<имя аргумента><точка><короткое имя атрибута><запятая><формат>)

Например, @arg_001.R,%.1f отобразит значение Реального значения канала, привязанного к аргументу arg_001 с одним знаком после запятой.

-2

Задаем формат для Программ (Call.Program).

Особых премудростей нет. Пишет число в том формате, в котором необходимо, например, десятеричное 16 в шестнадцатеричном формате будет 16#10.

Подробно в

Справочная Система - Программирование алгоритмов - Описание языка Техно ST - Переменные и константы - Числовые константы Техно ST.

Задаем формат для Экранов (Call.Screen).

Как отобразить значение на экране мы рассматривали ранее (ссылка).

Теперь рассмотрим форматирование чисел.

Значение "12.3" при разных форматах
Значение "12.3" при разных форматах

Имеем канал Analog с форматом F2 ((%.2f, %18.2f) два знака после запятой) и значением "12.3". Аргумент экрана real.

Auto - отобразит число в удобном виде (уберет незначащие нули) - 12.3

Float %.3f - отобразит как число с тремя знаками - 12.300

Float %.1f - отобразит как число с одним знаком - 12.3

Integer %d - отобразит как целочисленное число в десятичном виде - 12

Integer %X - отобразит как целочисленное число в шестнадцатеричном виде - С

Integer %hu - отобразит как беззнаковое целочисленное число шестнадцатеричном виде - 12

Binary - отобразит как число в двоичном виде - 1100

Default- отобразит число в заданном в канале формате (два знака после запятой) - 12.30

Date/Time- отобразит как время (количество секунд с 01.01.1970, с учетом часового пояса) - 01.01.1970 3:00:12

Успехов в освоении Программы и применении полученного опыта! 👽

Сайт Разработчика Trace Mode

Скачать БЕСПЛАТНО и официально

Форум Trace Mode 7