Функция округления в большую сторону - CEIL , но она генерирует целое число.
Функция округления в меньшую сторону - FLOOR , но это тожегенерирует целое число.
Функция 'округлить до ближайшего' равна ROUND , и она позволяет вам указать количество десятичных знаков (dp).
Обратите внимание, что CEILокругляет до целого числа;чтобы округлить до 2 dp, вам нужно умножить на 100, использовать CEIL и разделить на 100.
Чтобы получить разумный ответ, используйте:
ROUND(value+0.005, 2)
Это работает, потому что для данных примера 4.01132141 значение, передаваемое в ROUND, равно 4.01632, а при округлении до 2 dp оно становится 4.02.Если бы значение началось, скажем, с 4.0593, то значение, передаваемое в ROUND, было бы 4.0643, которое при округлении до 2 дп становится 4.06, как требуется.
Здесь есть пара хитрых битов:
- Если число dp меняется, добавляемое значение (в примере 0,005) меняется.Вы можете создать таблицу для хранения количества десятичных знаков в одном столбце и значения округления для добавления в другом.Кроме того, вы можете использовать выражение со степенями 10 и т. Д.
- Выбор правильного поведения для отрицательных чисел.-4.01132141 становится -4.02 или -4.01?Возможно, вам придется поиграть с функциями SIGN и ABS, чтобы заставить его работать так, как вы хотите.