Инструменты пользователя

Инструменты сайта


Боковая панель

Введение

Статьи и часто задаваемые вопросы

Установка и настройка

Обработка ошибок

Полезные запросы SQL

Тематические группы

round



ROUND()

Версии сервера

0.9 1.0 1.5.3 1.5.4 1.5.5 2.0 2.1 2.5 3.0
Как UDF Да Да Да Да Да Да - - -
Как встроенная функция - - - - - - Да Да Да

Доступно в

Формат

ROUND( < аргумент > , < знаков > )
Аргумент Описание
< аргумент > Числовое выражение
< знаков > INTEGER
Возвращает INTEGER, BIGINT или DOUBLE

Описание

Функция ROUND() возвращает результат округления числа < аргумент > до < знаков > знаков после запятой в ближайшую сторону. Если число < знаков > отрицательное, то округление идет до < знаков > знаков перед запятой.

:!: В Firebird версии младше 2.1 для того, чтобы пользоваться этой функцией, ее небходимо подключить к базе данных как UDF.

Объявление

1. В Firebird версии младше 2.1 функция объявляется как UDF в внешнем модуле «ib_udf».

DECLARE EXTERNAL FUNCTION ROUND
    INTEGER BY DESCRIPTOR,
    INTEGER BY DESCRIPTOR
RETURNS PARAMETER 2
ENTRY_POINT 'fbround' MODULE_NAME 'fbudf';

2. В Firebird версии 2.1 и старше является встроенной функцией при соглашении объявления ее как:

DECLARE EXTERNAL FUNCTION ROUND
    INTEGER BY DESCRIPTOR,
    INTEGER BY DESCRIPTOR
RETURNS PARAMETER 2
ENTRY_POINT 'fbround' MODULE_NAME 'SYSTEM';

Пример

SELECT ROUND(1111.23456, 2), ROUND(1.23456, 0), ROUND(1111.23456, -2) FROM RDB$DATABASE

См. также

Источник

langref.pdf

Обсуждение

Максим Власов, 2009/11/03 08:47

У меня файребирд версии 2.0 подключаю функцию как в варианте 2 (встроенная)

делаю запрос из примера

в результате возвращается ошибка

Invalid token. invalid request BLR at offset 68. function ROUND is not defined. module name or entrypoint could not be found.

Attid, 2009/11/03 09:42

думаю там опечатка, второй вариант для 2,1 и выше.

Юрий, 2013/07/22 11:10

Думаю, опечатка - ВОЗРАЩАЕМОЕ ЗНАЧЕНИЕ НЕ INTEGER

Только авторизованные участники могут оставлять комментарии.
round.txt · Последние изменения: 2013/10/24 14:46 — 212.42.106.226