NumberToStr

From SunFlurry wiki
Jump to: navigation, search
  NumberToStr (Функции работы с числами)
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Аргумент не строка и не число
Визуальность:Нет

Функция конвертирует числовой аргумент в строку в одном из заданных режимов. В отличие от функции FormatNumber имеет возможности, более подходящие для форматирования числа для выгрузки во внешние источники.

Синтаксис

NumberToStr(<Аргумент (NUMBER)>,<Режим (INT)>):<Строковое представление (STRING)>

Аргументы

  • <Аргумент (NUMBER)> - Числовой аргумент, который необходимо сконвертировать в строку.
  • <Режим (INT)> - Режим конвертации:
    • 0 -- режим граничного округления. Округление дробной части осуществляется только для случаев, когда она "близка" к какому-то значению. К примеру, число 12.12999999997 будет сконвертировано в 12.13, тоже самое значение будет получено для числа 12.13000000012, однако, число 12.12999299997 будет сконвертировано в "12.12999299997". Такой режим "очистки" от накопившихся неточностей при работе с вещественными числами используется в системе по умолчанию при выводе чисел функцией Message, превращением числа в строку с помощью Str или конкатенации строк и чисел.
    • 1 -- режим обычного формата. Число будет сконвертировано в строку без каких-либо округлений с максимально доступной точностью. Если возможно, будет использован обычный формат, если количество дополнительных нулей после точки более 4 (padding) или число имеет экспоненту более 18, будет использована экспоненциальная запись при конвертировании. Т.е., число 0.00012 будет превращено в строку "0.00012", однако, число 0.0000012 уже в строку "1.2E-6".
    • 2 -- режим форсированного обычного формата. Число будет сконвертировано в строку без каких-либо округлений с максимально доступной точностью. При конвертации будет использован только обычный формат, даже если результат превратится в очень длинную строку. К примеру, число 1E1000 будет превращено в строку с 1001 знаком: "10000...0000".
    • 3 -- режим экспоненциальной записи. Число будет сконвертировано в строку без каких-либо округлений с максимально доступной точностью. При конвертации будет использована только экспоненциальная запись. К примеру, число 123.456 будет сконвертировано в "1.23456E+2"
    • 4 -- режим экспоненциальной записи с бесконечностями. Число будет сконвертировано в строку без каких-либо округлений с максимально доступной точностью. При конвертации будет использована только экспоненциальная запись, при этом результатом конвертации могут также стать строки "+Inf" (положительная бесконечность), "-Inf" (отрицательная бесконечность), "Nan" (ошибочное число).

Возвращаемое значение

Возвращает результат конвертации в виде строки

Примеры

a:=12.12999999997;

//Будет выведено 12.13
Message(NumberToStr(a,0));

//Будет выведено 12.12999999997
Message(NumberToStr(a,1));

//Будет выведено 0.00001212999999997
Message(NumberToStr(a/1000000,2));

//Будет выведено 1.212999999997E+1
Message(NumberToStr(a,3));