|
|
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Вот вроде бы давно я в третьем диалекте, но... what the foo ?? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Далее никакие дописывания десятичных знаков типа 1158 .000 не помогут, облом. Только cast(... as double) одного из сомножителей. Как он тут получил int overflow и вытеснение бита знака ?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 20:50:30 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
PS. название топега подправить бы надо: не любые int-числа, конечно же, но... "многие" :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 20:51:15 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
умножь на калькуляторе 7968127611093223 на 1158 и убедись что в 64-битном результате (а больше ФБ не умеет) установлен старший (знаковый) бит. Вот тебе и переполнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 21:00:43 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Таблоид, к слову, maxlongint = 9223372036854775807. Видно что твой первый результат весьма недалеко от этого числа. Да и вообще, в твоем первом результате уже 19 цифр... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 21:30:40 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Oracle c MSSQL тоже выдают ошибку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 22:25:50 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
NickDeeOracle c MSSQL тоже выдают ошибку? m$ sql 2005 dev ed: Код: plaintext ora 11.2g: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 22:54:58 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Расширь формат вывода у Оракула или приведи к строке на сервере. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 23:05:46 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovРасширь формат вывода у Оракула или приведи к строке на сервере. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 23:20:35 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
У Оракула арифметика в NUMBER (ЕМНИП, 38 десятичных знаков). MS SQL скорее всего считает в плавающих числах. Первое - тормозное, второе - приблизительное. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 00:02:27 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, тем не менее, у Оракла и МС СКЛ вторые числа совпадают. Но что вычисления там больше 18 знаков - это да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 00:19:51 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
kdvтем не менее, у Оракла и МС СКЛ вторые числа совпадают. Но что вычисления там больше 18 знаков - это да. Ну, значит, я был неправ насчёт плавающих. Лень сейчас гуглить внутреннее представление чисел в MS SQL, но возможно, что оно совпадает с ODBC Numeric - 128 разрядное целое. Арифметика с ним тоже не фунт изюма, но всё же попроще чем у Оракула. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 00:33:57 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, как я понимаю, в ФБ 3.0 никакого увеличения разрядности чисел нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 01:26:53 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovУ Оракула арифметика в NUMBER (ЕМНИП, 38 десятичных знаков). MS SQL скорее всего считает в плавающих числах. Первое - тормозное, второе - приблизительное.да фиг с ним, с приблизительным (я про мс скл): как только идёт умножение вещественного числа на целое, результат в общем случае не будет целым, если мантисса не смогла уместить 63 бита. Почему ФБ, когда видит 0.0007968127611093223 * 1157, не кастует автоматом операнд (любой) к double precision ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 13:59:29 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
ТаблоидПочему ФБ, когда видит 0.0007968127611093223 * 1157, не кастует автоматом операнд (любой) к double precision ? Потому что наивно полагает, что пользователю нужен точный результат. И ещё более наивно - что пользователь не идиот и знает что делает. Ну и с некоторым основанием - что её не используют в ЦЕРНе, а в остальных местах чисел с такой разрядностью в природе не бывает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 14:06:26 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovеё не используют в ЦЕРНе, а в остальных местах чисел с такой разрядностью в природе не бывает.Расход изделия за год = 3 штуки, за день = 3/365.25 = 0,032854209445585200. Цена изделия = 100 USD. Требуется подсчитать запас на 2 недели и на основе этого определить стоимость заказа у поставщега. Вариант-1: 0,0328*14 * 100 = 45.92 USD Вариант-2: 0,03285*14 * 100 = 45.99 USD Дельта = 0.07 USD - копейки, правда ? А теперь умножь на 1000 позиций. И затем на 28 - это число двухнедельных интервалов в году, когда складской заказ делаем. А затем на число складов, которые делают такие заказы (10, например). Если бы всё было так славно с 4-5 знаками после запятой, железный конь по имени Double не пришёл бы на смену деревянной лошадке по кличке Float. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 14:58:53 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Таблоидскладской заказ делаем. В там в натуре заказываете поставщику 0,03285 изделия?.. О_О' Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 15:13:02 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Таблоид, Оффтоп, конечно, но я как-то пропустил момент - как вы собираетесь заказывать 0,0328 изделия? Это я к чему - может надо бы логику заказа пересмотреть, какой-нить АВС-анализ прикрутить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 15:15:33 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Hello, Dimitry Sibiryakov! You wrote on 26 декабря 2013 г. 15:14:31: Dimitry Sibiryakov> В там в натуре заказываете поставщику 0,03285 изделия?.. О_О' видел у конкурентов систему учета, где основная единица для бумаги и картона выставлена в тоннах. оно конечно, при оптовой торговле таки ладно. но когда к ним приходит розничный покупатель и просит продать 2 листа картона формата А2, то и выходит вот такая поибень... зы: а всё потому, что мало систему спроектировать, нужно ещё и юзеров обучить основам ейного пользования и половой гигиены. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 15:18:47 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
да вы чё!... никаких дробей в заказываемом КОЛИЧЕСТВЕ нет :-) Есть данные статистики продаж штук (целых) за ГОД (365.25 дня). Она делится на 365.25, дабы получить средний расход в 1 день. Это число (дробное) никак не соотносится с физической реальностью, кто же спорит. Но если его далее умножить на 7, 14 или 30 дней, то получим ожидаемый расход за этот период. Упрощенно говоря, его и надо заказать (добавив неснижаемый остаток, ес-сно, но это к делу не относится). В примере взято число 3 (три штуки) - намеренно малое число. Но к нему также применяется это правило, как и к изделиям тима фильтров-маслов-колодок, которые уходят по 10 тыс в год. Консерваторию если и подправлять, то в поиске флуктуаций для изделий, у которых статистика является репрезентативной выборкой (от 100 штук в год). Но опять-таки это олффтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 15:22:11 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
ЗЫ. я вообще не про количество заказа говорю, а про погрешность и то, как она повлияет на итоговую стоимость. И не самого заказа (конкретного документа), а именно финансовый итог работы логистич. службы за длительный период. На основе которого они там дальше принимают всякие судьбоносные решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 15:24:20 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Hello, Таблоид! You wrote on 26 декабря 2013 г. 15:29:59: Таблоид> ЗЫ. я вообще не про количество заказа говорю, а про погрешность и то, > как она повлияет на итоговую стоимость. И не самого заказа (конкретного > документа), а именно финансовый итог работы логистич. службы за > длительный период. На основе которого они там дальше принимают всякие > судьбоносные решения. для принятия решения даже double precission - ИЗБЫТОЧЕН. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 15:31:22 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийдля принятия решения даже double precission - ИЗБЫТОЧЕН.обоснуй, плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 15:40:00 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Таблоидя вообще не про количество заказа говорю, а про погрешность и то, как она повлияет на итоговую стоимость. В любом случае количество заказываемых изделий будет округляться наверх до минимальной партии поставщика. И на цену будет умножаться уже это округлённое значение. А если твои приниматели решений любят опираться не на реальные числа заказов, а на всякую абстрактную фигню, то бог им судья, как и говорит МП. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 15:43:56 |
|
||
|
Integer overflow при умножении 0.0007968127611093223 на... любые int-числа
|
|||
|---|---|---|---|
|
#18+
Ладно. Да здравствует "пи", равное строго 3.14 и ни грамма больше. ЗЫ. а в яве длинную арифметику, в т.ч. BigDecimal, - её тоже для ЦЕРНа фигачили ? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 15:55:08 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38512521&tid=1564025]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
185ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 478ms |

| 0 / 0 |
