powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ROUND function
5 сообщений из 5, страница 1 из 1
ROUND function
    #39953731
endy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Тестировал числовые функции и обнаружил такую деталь и никак не могу понять как это происходит.

Этот запрос возвращает значение в аутпуте значение 0, так как второй аргумент превышает количество позиций первого аргумента.

Код: plsql
1.
select round(1723.9852, -999999999) from dual;



Аутпут:
Код: plsql
1.
0




Но если добавить еще одну девятку, то получается тоже самое число, которое указан как первый параметр.

Код: plsql
1.
select round(1723.9852, -9999999999) from dual;



Аутпут:
Код: plsql
1.
1723.9852



На практике конечно этот пример маловероятен, но на экзаменах чтобы проверить знания о работе той или иной функции такие вопросы попадаются. Поэтому я хотел узнать у опытных людей, чем руководствуется функция round, когда выдает такой результат. Всем кто поможет заранее благодарю.
...
Рейтинг: 0 / 0
ROUND function
    #39953742
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Второй параметр - это не маска, а КОЛИЧЕСТВО цифр. Ни в одном оракловом числовом типе нет 9 млрд значащих цифр. Так что глупости это.
...
Рейтинг: 0 / 0
ROUND function
    #39953749
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася
Так что глупости это.
При всём моём предубеждении, вася, тебя тролли развели на ничто.
...
Рейтинг: 0 / 0
ROUND function
    #39953899
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
endy
Всем привет. Тестировал числовые функции и обнаружил такую деталь и никак не могу понять как это происходит.


Наводки: определение ф-ции ROUND (stdspec.sql в $ORACLE_HOME/rdbms/admin). И:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> select round(1723.9852,-power(2,31) + 1) from dual;

ROUND(1723.9852,-POWER(2,31)+1)
-------------------------------
                              0

SQL> select round(1723.9852,-power(2,31)) from dual;

 ROUND(1723.9852,-POWER(2,31))
------------------------------
                     1723.9852

SQL>



SY.
...
Рейтинг: 0 / 0
ROUND function
    #39954026
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

имхо баг

POWER returns n2 raised to the n1 power. The base n2 and the exponent n1 can be any numbers , but if n2 is negative, then n1 must be an integer.


-9999999999 be any numbers

....
stax
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ROUND function
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]