Difference between revisions of "NumberToStr"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:51, 7 February 2021
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));