Я хочу преобразовать это значение «2167.124» в «2167.13», используя круглую функцию в оракуле 11g. Проблема в том, что он преобразует LIKE «2167.12» Но мне нужно «2167.13».Как округлить в оракуле
Пожалуйста, помогите, заранее спасибо
Я хочу преобразовать это значение «2167.124» в «2167.13», используя круглую функцию в оракуле 11g. Проблема в том, что он преобразует LIKE «2167.12» Но мне нужно «2167.13».Как округлить в оракуле
Пожалуйста, помогите, заранее спасибо
Если вы хотите, чтобы преобразовать заданное значение 2167.12" в "2167,13" Пожалуйста, используйте этот
выберите CEIL (2167,124 * 100)/100 от двойного;
Спасибо, что разрешили мою проблему. Но есть одна путаница, почему вы умножаете значение на 100 и снова деля 100? благодаря, – user3004110
Расширение на примере Сэма, умножая на 100 эффективно перемещает десятичную точку две позиции вправо, так что ваше значение становится 216712,4:
select 2167.124*100 as step1 from dual;
STEP1
----------
216712.4
Вы тогда звоните ceil
на то, чтобы найти «наименьшее целое число, которое больше или равно п»:
select ceil(216712.4) as step2 from dual;
STEP2
----------
216713
Затем делением на 100 эффективно перемещает точку десятичной назад те же два места влево:
select 216713/100 as step3 from dual;
STEP3
----------
2167.13
Ввод три шага в одну заявления получает:
select ceil(2167.124*100)/100 as result from dual;
RESULT
----------
2167.13
Вот как округление работы. Вы всегда хотите «округлить», вне зависимости от ценности цифр? –
Каковы ваши правила округления? – axxis
Попробуйте найти функцию CEIL (и связанный с ней FLOOR) в Oracle, хотя вам может потребоваться сначала преобразовать в целое число. Или вы добавили бы 0.005 к исходному номеру, а затем к ROUND. Но что происходит, когда у вас есть «9.991», вы хотите, чтобы затем округлить до «10,00»? – TenG