Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Nikolay Kalmarskiy
Member [заблокирован]

Откуда: Матф.7,19
Сообщений: 4083


К сообщению приложен файл. Размер - 0Kb
4 ноя 09, 10:12    [7880277]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Saller
Member

Откуда: exUSSR
Сообщений: 1141
MSSQL 2008
select 36/-4/3 (Result -36)
FireBird 2.5
select 36/-4/3 from rdb$database (Result -36)
А в чем должен быть фокус? В том что в некоторых системах анализатор не понимает что пропущены скобки?
4 ноя 09, 11:36    [7880510]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Микро-калькулятор
Guest
Saller
MSSQL 2008
select 36/-4/3 (Result -36)
FireBird 2.5
select 36/-4/3 from rdb$database (Result -36)
А в чем должен быть фокус? В том что в некоторых системах анализатор не понимает что пропущены скобки?
в том, что в MS SQL приоритет унарной операции обращения знака ("-5") оказался НИЖЕ, чем приоритет деления и умножения! А в MS EXCEL (продукте ТОЙ ЖЕ САМОЙ конторы!) приоритет этой унарной операции ВЫШЕ!
Вы можете объяснить мне, где у них там "играют", а где "рыбу заворачивают" ?
4 ноя 09, 12:00    [7880605]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
hvlad
Member

Откуда:
Сообщений: 11551
Saller
FireBird 2.5
select 36/-4/3 from rdb$database (Result -36)
Свежий снапшот возьми

Saller
А в чем должен быть фокус?
В том, что во всех современных известных мне языках программирования (проверял C, C++, Java и C#) унарные операцие имеют приоритет выше бинарных.
4 ноя 09, 12:14    [7880649]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
void main(void)
{
int a;
a = 36/-4/3;

std::cout << a << std::endl;
}

VS2008: -3
4 ноя 09, 12:27    [7880713]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 600
command com :-)

C:\>set /a 36/-4/3
-3



bash

$((36/-4/3))
bash: -3:

:-)


select @@version
go
SELECT 36/-4/3

Adaptive Server Enterprise/12.5.3/EBF 13061 ESD#5/P/NT (IX86)/OS 4.0/ase1253/1939/32-bit/OPT/Tue Dec 06 00:21:31 2005
-3

select @@version
@@version
'10.0.1.3887'

select 36/-4/3
-3
4 ноя 09, 15:05    [7881386]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
google : (36 / (-4)) / 3 = -3
4 ноя 09, 18:37    [7882084]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
leff
Member

Откуда: Vancouver
Сообщений: 162
Вот так веселее на MSSQL
select 36/-1/3
5 ноя 09, 01:45    [7883256]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Хрен
Member

Откуда: Brisbane
Сообщений: 1455
Микро-калькулятор
ps. интересуют не только результаты в select'ах, но и в интерпретаторах выражений ЯВУ (pascal, c#, powerbuilder, java etc)


erlang:

Eshell V5.7.2 (abort with ^G)
1> 36/-4/3.
-3.0


ocaml:

# 36 / -4 / 3 ;;
- : int = -3

openoffice calc:
-3

haskell (hugs):
Hugs> 36 / -4 /3
-27.0

haskell ghci:
Prelude> 36 / -4 / 3

<interactive>:1:0:
Precedence parsing error
cannot mix `/' [infixl 7] and prefix `-' [infixl 6] in the same infix expression


Prelude> 36/ (-4) /3
-3.0



postgresql:
main=> select 36 / -4 / 3;
?column?
----------
-3
(1 row)
5 ноя 09, 09:42    [7883669]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Хрен
Member

Откуда: Brisbane
Сообщений: 1455
Микро-калькулятор,

bash:
$ echo $((36/-4/3))
-3


python:
Python 2.6.4 (r264:75706, Oct 29 2009, 15:38:25)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 36/-4/3
-3

perl:
perl <<EOF
> print 36/-4/3
> EOF
-3

awk:
echo |awk '{print 36/-4/3}'
-3
5 ноя 09, 09:54    [7883741]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2496
Postgresql
SELECT 36/-4/3  AS result;
result
------
-3
5 ноя 09, 10:19    [7883880]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Favn
Member

Откуда:
Сообщений: 585
DB2 LUW 9.5.2:

db2 => values ( 36/-4/3 )

1
-----------
-3
5 ноя 09, 13:12    [7885454]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Микро-калькулятор
в том, что в MS SQL приоритет унарной операции обращения знака ("-5") оказался НИЖЕ, чем приоритет деления и умножения! А в MS EXCEL (продукте ТОЙ ЖЕ САМОЙ конторы!) приоритет этой унарной операции ВЫШЕ!
Вы можете объяснить мне, где у них там "играют", а где "рыбу заворачивают" ?


Как "играют" и во что "рыбу заворачивают" описано в документации по продукту. Для MS SQL приоритет операторов здесь: http://msdn.microsoft.com/en-us/library/ms190276.aspx

ЗЫ. Как миниум странно, мерять поведенческие характеристики разных продуктов "конторой", их выпускающей.
5 ноя 09, 13:15    [7885471]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
hvlad
locky
hvlad,

так есть.
А как "надо" - вопрос дискуссионный.
В стандарте я не нашёл приоритетов операций.
Но, есть ли ещё один язык программирования, в котором унарные плюс\минус имеют приоритет не выше, чем другие арифметические действия ?
Да. Когда-то я работал с Btreive SQL (впоследствии Scalable SQL, сейчас - Pervasive SQL).
Так мы много времени тогда ухлопали, пока не выяснили - нет никаких приоритетов операторов!
Всё - слева направо! 3+4*5=60, и точка!
5 ноя 09, 14:01    [7885905]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Микро-калькулятор
Guest
pkarklin,

спасибо, эту страницу я внимательно читал несколько раз. Но есть ли где-то обоснование того, что там представлено ? Унарная операция, имеющая, как видно по текущему обсуждению, в большинстве языков/сред/СУБД приоритет ВЫШЕ, чем умножение и деление. В СУБД MS SQL она сознательно поставлена в один ряд с бинарными сложением и вычитанием. Это НЕ МОГЛО быть сделано случайно, не верю. След-но, должна быть причина, объяснение. Где-то её можно найти или "тайна сия велика есть" ?
5 ноя 09, 14:05    [7885936]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
может просто они считают знак "-" (минус) не как унарную операцию, а как указатель того, что число отрицательное?

ну выполните следю операцию на бумажке и приведите решение и ответ:

2/-4 = 

У здравосмыслящего человека получится -0.5
5 ноя 09, 14:07    [7885955]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Микро-калькулятор
Guest
Hett,

нет, результат определяется тем, какая точность у операндов в выражении; результирующая точность берётся по максимальной из "встреченных":
select 2/-4 v1, 2/-4. v2, 2./-4 v3, 2./-4. v4

Результат:
v1 v2 v3 v4
0 -0.500000 -0.500000 -0.500000
5 ноя 09, 14:14    [7886022]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
Я про другое.
5 ноя 09, 14:16    [7886033]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Микро-калькулятор
Guest
Hett,

тогда поясните точнее. Как видите, 2/-4 не равно тому, что получится у "здравомыслящего человека"
5 ноя 09, 14:19    [7886064]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
То, что приоритет обращения знака переменной выше чем унарная операция, вот в чем. :)
5 ноя 09, 14:23    [7886101]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
Просто не ясно, по какому поводу шумиха.
5 ноя 09, 14:24    [7886107]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Микро-калькулятор
Guest
Hett
То, что приоритет обращения знака переменной выше чем унарная операция, вот в чем. :)
извините, не понимаю! чем отличается унарная операция ("-5") от операции обращения знака (всё та же "-5") ?
5 ноя 09, 15:54    [7886822]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Микро-калькулятор
В СУБД MS SQL она сознательно поставлена в один ряд с бинарными сложением и вычитанием. Это НЕ МОГЛО быть сделано случайно, не верю. След-но, должна быть причина, объяснение. Где-то её можно найти или "тайна сия велика есть" ?


Боюсь, что даже если мы выйдем на продуктовую команду, то ничего более конкретного, чем by design, ничего не услышим. Да, и оно, надо?!
5 ноя 09, 15:54    [7886824]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Микро-калькулятор
Guest
Hett
Просто не ясно, по какому поводу шумиха.
Шумихи никакой нет. Мне показался неожиданным результат выражения (см заголовок топика), я решил утоочнить у сообщества, что получается в других средах. Выяснилось, что приоритет операции "Отрицание" в MS SQL ниже, чем приоритет умножения и деления и эквивалентен приоритету сложения/вычитания. Единственное, что мне неясно - это ЗАЧЕМ так было сделано в MS SQL. Особенно если учесть, что в другом своем продукте они реализовали другой приоритет (в Excel'e у операции "отрицания" он ВЫШЕ, чем у операций умножения и деления).
5 ноя 09, 15:58    [7886868]     Ответить | Цитировать Сообщить модератору
 Re: Какой у вас результат ычисления вот этого: 36/-4/3 ?  [new]
Микро-калькулятор
Guest
pkarklin,

извините, не видел Ваш ответ - был занят собственным сочинительством :-)
5 ноя 09, 15:58    [7886876]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить