SQL округляет процент до ближайшего .1

0

У меня есть столбцы процентов, и я хочу, чтобы они всегда округлялись до ближайшего .1

например

.005 --> .1
.11 --> .2
.3256 -->.4
.6797 -->.7

Я пытаюсь потолок и пол, но они дают мне все целые числа

Я пробовал это, но он все еще округляется, как обычно, будет работать

раунд (n * 10, 0)/10 как [ближайший 0,10]

  • 2
    Пожалуйста, отметьте свой вопрос с базой данных, которую вы используете.
  • 0
    Добавлен тег Sql-сервера
Показать ещё 1 комментарий
Теги:
sql-server
decimal
rounding

3 ответа

1

Вы всегда можете использовать ceiling() и арифметику:

select ceiling(percentage * 10) / 10.0
  • 1
    Он выполняет 3 операции: Умножение, Деление и Потолок. Всегда используйте внутренние функции, предоставляемые программным обеспечением / структурой.
0

Другой вариант с модульной арифметикой:

DECLARE @a DECIMAL(5,5) = 0.000005 --insert your number here

PRINT ROUND(@a, 1) + CASE WHEN @a % 0.1 < 0.05 AND @a % 0.1 > 0 THEN 0.1 ELSE 0 END

Это проверяет, чтобы увидеть, находится ли остаток от деления на 0,1 между 0 и 0,05 (то есть округлено в меньшую сторону), и добавляет 0,1 к округленному значению, если так.

0

Функция round() может быть самой простой доступной опцией.

select round(1.02345443,2) from dual

где 1-й аргумент - это число ввода, а вторая цифра - цифры после десятичной точки.

Пожалуйста, обратитесь к этому официальному документу для получения дополнительной информации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню