У меня есть столбцы процентов, и я хочу, чтобы они всегда округлялись до ближайшего .1
например
.005 --> .1
.11 --> .2
.3256 -->.4
.6797 -->.7
Я пытаюсь потолок и пол, но они дают мне все целые числа
Я пробовал это, но он все еще округляется, как обычно, будет работать
раунд (n * 10, 0)/10 как [ближайший 0,10]
Вы всегда можете использовать ceiling()
и арифметику:
select ceiling(percentage * 10) / 10.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 к округленному значению, если так.
Функция round() может быть самой простой доступной опцией.
select round(1.02345443,2) from dual
где 1-й аргумент - это число ввода, а вторая цифра - цифры после десятичной точки.
Пожалуйста, обратитесь к этому официальному документу для получения дополнительной информации.