Добрый день, уважаемый All
вот натолкнулся на забавную ситуацию
select round(99.9,0)
приводит к ошибке
An error occurred while executing batch. Error message is: Arithmetic Overflow.
в тоже время
declare @i int
select @i=round (99.75,-1)
select @i
работает согласно описанию
Это бага или я что-то не понимаю?
Версия
Microsoft SQL Server 2005 — 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
Здравствуйте, tarasich, Вы писали:
T>Добрый день, уважаемый All
T>вот натолкнулся на забавную ситуацию
T>T>select round(99.9,0)
T>
T>приводит к ошибке
T>An error occurred while executing batch. Error message is: Arithmetic Overflow.
T>в тоже время
T>T>declare @i int
T>select @i=round (99.75,-1)
T>select @i
T>
T>работает согласно описанию
T>Это бага или я что-то не понимаю?
T>Версия
T>Microsoft SQL Server 2005 — 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
Более того:
select round(9.499999999999999999999999999999999999,0) — работает
select round(9.5,0) — ошибка
select round(10.00000000000000000000000000000000001,0) — работает
select round(99.499999999999999999999999999999999999,0) — работает
select round(99.5,0) — ошибка
select round(100.00000000000000000000000000000000001,0) — опять работает
select round(999.49999999999999999999999999999999999,0) — работает
select round(999.5,0) — ошибка
select round(1000.0000000000000000000000000000000001,0) — работает
И так далее
Здравствуйте, tarasich, Вы писали:
T>Добрый день, уважаемый All
T>вот натолкнулся на забавную ситуацию
T>T>select round(99.9,0)
T>
T>приводит к ошибке
T>An error occurred while executing batch. Error message is: Arithmetic Overflow.
М-да, забавно. У меня точно так же.
Microsoft SQL Server 2005 — 9.00.2047.00 (Intel X86) Apr 14 2006 01:12:25 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
Здравствуйте, tarasich, Вы писали:
На 2К все типтоп
Microsoft SQL Server 2000 — 8.00.760 (Intel X86)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, tarasich, Вы писали:
T>Добрый день, уважаемый All
T>вот натолкнулся на забавную ситуацию
T>T>select round(99.9,0)
T>
T>приводит к ошибке
T>An error occurred while executing batch. Error message is: Arithmetic Overflow.
T>Это бага или я что-то не понимаю?
T>Версия
T>Microsoft SQL Server 2005 — 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
Дело не в сервере:
У меня из Managment Studio дает ошибку как на 2005, так и на 2000. Из QA же выполняется без ошибки и там и там.
Здравствуйте, tarasich, Вы писали:
T>Добрый день, уважаемый All
T>вот натолкнулся на забавную ситуацию
T>T>select round(99.9,0)
T>
T>приводит к ошибке
T>An error occurred while executing batch. Error message is: Arithmetic Overflow.
А так все пучком..
select round(cast(99.6 as smallmoney),0)
что то имхо в фреймворке глючит. Т.к. из менеджмент студио приведенное выше
выдает ошибку и на 2К и на 2005 а из QA на 2К все ок.