|
|
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
Всем привет. Сабж. Введите это выражение (БЕЗ СКОБОК!) в MS Excel, затем в своей СУБД (select ... from ...) Что будет в итоге ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2009, 21:22 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
по-моему баян ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 00:35 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
Куда рыть ? дайте тынц, плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 08:35 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
Во, блин. Firebird 2.1 выдал муйню: -36 Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 16:57 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. авторArray ( [0] => -3.00000000 ) иии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 17:05 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
ps. интересуют не только результаты в select'ах, но и в интерпретаторах выражений ЯВУ (pascal, c#, powerbuilder, java etc) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 19:19 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
И в СУБД и в EXCEL все верно считается. А что собственно должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 19:22 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
HettИ в СУБД и в EXCEL все верно считается. А что собственно должно быть? 1) в экселе ввожу в ячейку формулу: Код: plaintext 2) соединяюсь с СУБД Firebird 2.1 через isql, даю вот такую команду: <fb_home_path>\bin\isql -user myself -p mypass -m -i calc.sql -o calc.log 192.168.0.1:<disk:\path\fb_database.fdb> в скрипте calc.sql при этом пишу: Код: plaintext 1. TEST ========================= -27.00000000000000 3) открываю MS SQL Studio (2005 XE), пишу: Код: plaintext А вот теперь встречный вопрос: а действительно, что должно быть в итоге ? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 20:04 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
Микро-калькуляторps. интересуют не только результаты в select'ах, но и в интерпретаторах выражений ЯВУ (pascal, c#, powerbuilder, java etc)Насчет Паскаль/Дельфи можешь не волноваться. Там знак "/" строго для деления чисел с плавающей запятой, а для целочисленых используется "div". Ну и выполнение операций слева направо, с учетом "ранговости", т.е. (*/) (+-), как в математике. Эффект (имхо) появится если : 1. Выражение воспримется целочисленым, сообразно операндам (36,3,4) 2. и вычислится справа налево тогда -4/3 = -1 и потом 36/-1 = -36 .. а почему справа налево, потому что есть некая неоднозначность в выражении, знак минус можно принять за знак 4-ки и за минус, и возможно парсер выражения не срабатывает правильно. select 36/(-4)/3 from rdb$database срабатывает правильно вообще-то всегда когда есть сомнения в правильности порядка вычислений, надо пользоваться скобочками, они не занимают много места ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 20:27 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
leonbnВо, блин. Firebird 2.1 выдал муйню: -36 Почему?Бага. Старая. Исправление уже готово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 20:32 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
hvlad, а тогда что получается, он -27 получил как (36/(-4))*3 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 20:33 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
Микро-калькуляторвижу в логе calc.log это еще и от диалекта зависит. У тебя база в 1-м диалекте, вычисление идет в double, получаешь -27. В 3-м диалекте вычисление пойдет в integer и получится -36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 20:35 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
S.G.надо пользоваться скобочками, они не занимают много места ;)хе-хе-хе... :-) вопрос как раз и возник из-за того, что в коде эти скобочки были случайно(?) пропущены одним нашим торопливым кодером. Только выражение, ес-сно, было немного другое, с переменными. И когда подставили конкретные числа, то удивились немало :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 20:36 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
dimitrМикро-калькуляторвижу в логе calc.log это еще и от диалекта зависит. У тебя база в 1-м диалекте, вычисление идет в double, получаешь -27. В 3-м диалекте вычисление пойдет в integer и получится -36.фига се... спасибо, этого я не знал! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 20:37 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
Микро-калькулятор в коде эти скобочки были случайно(?) пропущены одним нашим торопливым кодером. ------ offtop begin --------- торопливым? он еще не постиг дао ... LAZINESS Success is a journey, not a destination. So stop running. :) ------ offtop end --------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2009, 20:48 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
для Microsoft SQL Server Приоритет операторов (Transact-SQL) Приоритет типов данных (Transact-SQL) 1. Приоритет унарного минуса меньше чем оператора деления. Поэтому минус в данном выражении относится к результату деления целого 4 на целое 3. 2. Результат деления двух целых - целое:Приоритет типов данныхЕсли оператор связывает два выражения различных типов данных, то по правилам приоритета типов данных определяется, какой тип данных имеет меньший приоритет и будет преобразован в тип данных с большим приоритетом. Если неявное преобразование не поддерживается, возвращается ошибка. Если оба операнда выражения имеют одинаковый тип данных, результат операции будет иметь тот же тип данных. Кстати, п.1 неочевиден. Чаще всего унарные операторы имеют более высокий приоритет, чем бинарные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2009, 16:36 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
Микро-калькуляторЧто будет в итоге ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2009, 21:20 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
iap, В приведенной ссылке отсутствует приоритет унарных операторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2009, 22:53 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
hvladiap, В приведенной ссылке отсутствует приоритет унарных операторов.Тьфу, они унарный минус и плюс как "+ (положительное), - (отрицательное)" обозвали. Сейчас набежит толпа любителей МССКЛ, утверждая, что так и надо Я о приоритете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2009, 22:56 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
hvlad, так есть. А как "надо" - вопрос дискуссионный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2009, 23:58 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
lockyhvlad, так есть. А как "надо" - вопрос дискуссионный.В стандарте я не нашёл приоритетов операций. Но, есть ли ещё один язык программирования, в котором унарные плюс\минус имеют приоритет не выше, чем другие арифметические действия ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 00:51 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
hvlad Но, есть ли ещё один язык программирования, в котором унарные плюс\минус имеют приоритет не выше, чем другие арифметические действия ? Кстати, язык, в котором бы унарные операции было разрешено применять к результату других унарных операций лично мне не попадался. Т.е. с синтаксической точки зрения 36/+-4 это недопустимая конструкция. Хотя, может, я просто слишком осторожничал при наборе... Но с Сях, например, при 36/--4 возникает неоднозначность. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 01:05 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНо с Сях, например, при 36/--4 возникает неоднозначность.Здесь нет неоднозначности, т.к. "--" это самостоятельный оператор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 01:09 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
hvladlockyhvlad, так есть. А как "надо" - вопрос дискуссионный.В стандарте я не нашёл приоритетов операций. Но, есть ли ещё один язык программирования, в котором унарные плюс\минус имеют приоритет не выше, чем другие арифметические действия ? Mumps? Но точно не помню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 01:45 |
|
||
|
Какой у вас результат ычисления вот этого: 36/-4/3 ?
|
|||
|---|---|---|---|
|
#18+
hvladВ стандарте я не нашёл приоритетов операций. Но, есть ли ещё один язык программирования, в котором унарные плюс\минус имеют приоритет не выше, чем другие арифметические действия ? Для СУБД Caché арифметические операции не имеют приоритета: Arithmetic Operators . Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 08:44 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36283982&tid=1552713]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 158ms |

| 0 / 0 |
