Функция ftostr
| Назначение: | Преобразует вещественное значение в его строковое представление. |
| Синтаксис: | ftostr(byref num as real, mode as ftostr_mode, rnd as byte) as string |
| См. также: | strtof, cfloat, str, val |
| Элемент | Описание |
| num | Преобразуемое вещественное значение. |
| mode | Нужный формат вывода: 0 - FTOSTR_MODE_AUTO: формат (обычный или мантисса/порядок) выбирается автоматически. Если запись в виде мантиссы и порядка получается короче, используется она, иначе - обычный формат. 1 - FTOSTR_MODE_ME: использовать формат мантисса/порядок. 2 - FTOSTR_MODE_PLAIN: использовать обычный формат, без представления мантисса/порядок. |
| rnd | Количество цифр, до которого округляется результат (общее число ненулевых цифр в целой и дробной частях мантиссы). |
Подробности
Функция ftostr даёт гораздо больше контроля над форматом выходной строки, чем аналогичные функции в других системах. Во-первых, можно выбрать мантиссу с порядком или «обычный» формат либо поручить выбор самой функции. Во-вторых, вы управляете округлением, то есть решаете, сколько цифр отображать, и это влияет на представление и дробной, и целой части значения.
Примеры ниже показывают, на что способна ftostr. У этой функции есть парная - fstr, которая вызывается неявно при присваивании вещественного значения строке (string=real). fstr работает так же, как ftostr, но параметры mode и rnd в ней фиксированы: 0 - FTOSTR_MODE_AUTO и «максимально возможное число цифр» соответственно.
Примеры
dim r1 as real
dim s as string
'demonstrate output formats
r1=10000000000.0 'notice '.0' -- it is necessary or compilier will generate an error
s=ftostr(r1,FTOSTR_MODE_ME,11) 'result will be '1E+010'
s=ftostr(r1,FTOSTR_MODE_PLAIN,11) 'result will be '10000000000'
s=ftostr(r1,FTOSTR_MODE_AUTO,11) 'result will be '1E+010' because this representation is more
compact
'demonstrate rounding
r1=1234567.125
s=ftostr(r1,FTOSTR_MODE_AUTO,15) 'result will be '1234567.125'
s=ftostr(r1,FTOSTR_MODE_AUTO,9) 'result will be '1234567.13'
s=ftostr(r1,FTOSTR_MODE_AUTO,2) 'result will be '1200000'
s=r1 'fstr will be used, result will be '1234567.125'