2013-10-07 3 views
2

Здесь мое частное заявление. Оператор работает и получает значение 4, но вместо этого я предпочел бы 3,9, в некоторых случаях число может не быть целым числом, но .4, .2, .1 и т. Д. Эти числа в настоящее время отображаются как «0», потому что Oracle округляет , Если я удалю «круглый», я получаю 3.9123458543845474586. Есть ли способ показать 3,9 только и .4, .2 и т. Д. Без округления? Я знаю, что это проблема синтаксиса. Когда я удаляю раунд, я получаю сообщение об ошибке.Oracle Округление

круглых ((total_qty) * ((avg_qty/(сумма (avg_qty) в течение (раздела, ID)))/5), 0) avg_qty

Заранее спасибо.

+2

'круглый (х, 1)' –

+1

Если вы получаете сообщение об ошибке при удалении 'ROUND', что означает, что вы не удалите его должным образом; будьте осторожны со своими круглыми скобками. Ответ Егора будет округлен до одного десятичного знака, что, как я думаю, вы просили. Если вы хотите одно десятичное место без округления, вместо этого используйте 'TRUNC (x, 1)'. 'TRUNC (4.56, 1)' возвращает '4.5'; 'ROUND (4.56, 1)' возвращает '4.6'. Один из них будет вашим ответом. –

+0

Я пробовал выше, и я получаю ошибку «Отсутствие скобок». – user2855463

ответ

2

Попробуйте, как это,

SELECT ROUND(3.9123458543845474586, 1) Round FROM DUAL; 

    Round 
---------- 
     3.9 

Для лучшего понимания, пожалуйста, смотрите эту link.

+0

Спасибо, DBA, это сработало. – user2855463

9

Если вы всегда хотите «круглый» down, функция trunc. Это должно работать для вас:

select trunc(3.99999, 1) from dual; 

Результат

3.9 
+2

Меня это раздражает, когда люди говорят «округлить» или «закруглить», мне всегда нужно спросить: «Так что вам не нужно раунд, вы хотите потолок или пол?». Они обычно отвечают: «Нет, я хочу, чтобы он округлился до ближайшего п. Раскройте его!»

Смежные вопросы