Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Пятничный баг с power?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35384
Блог
SELECT Power(0,0)


выдает 1, а собственно почему?

x^0 = x^(1-1) = x^1 * x^(-1) = x/x = > 0/0 - неопределенность

и второй момент, почему 5. = 5?
или 5. уже не float?

SELECT Power(5.,-1)
SELECT Power(5.0,-1)


Microsoft SQL Server 2008 R2 (SP1) - 10.50.2811.0 (X64)
Apr 6 2012 01:59:29
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Microsoft SQL Server 2012 - 11.0.2332.0 (X64)
Aug 22 2012 17:05:49
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
30 ноя 12, 15:42    [13556790]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
super-code
Member

Откуда:
Сообщений: 244
Критик, любое число в сетпени 0 равно 1 !
30 ноя 12, 15:46    [13556823]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
VSVLAD
Member

Откуда: Краснодар
Сообщений: 1398
Критик
и второй момент, почему 5. = 5?
или 5. уже не float?

5.0 даже не Float, а Numeric. А вот 5.0E - уже Float.

Типы проверяю так и видим
SELECT Power(5.,-1) P1 INTO AA  --numeric(38,0)
SELECT Power(5.0,-1) P2 INTO AB   -- numeric(38,1)


Microsoft SQL Server 2005 - 9.00.5000.00 (X64) Dec 10 2010 10:38:40 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
30 ноя 12, 15:49    [13556859]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Критик
или 5. уже не float?

Выполняем такой код:
select sql_variant_property(5., 'BaseType'), sql_variant_property(5., 'Precision'), sql_variant_property(5., 'Scale')

и узнаём, что это не float, а numeric(1,0).

То же самое можно узнать, выполнив
select 5. as x into t;
exec sp_help t;
drop table t;


Дальше, смотрим в хелп по функции POWER и видим:
BOL
POWER ( float_expression , y )
Return Types
Same as float_expression.


Почему у Микрософта POWER(0,0) = 1, не знаю.
30 ноя 12, 15:50    [13556870]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Добрый Э - Эх
Guest
super-code
Критик, любое число в сетпени 0 равно 1 !
С другой стороны, если уж вспоминать школьные штампы по математике, то - ноль в любой степени равен нолю...
30 ноя 12, 15:52    [13556883]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
VSVLAD
Member

Откуда: Краснодар
Сообщений: 1398
Добрый Э - Эх,

Калькулятор винды думает иначе
30 ноя 12, 15:54    [13556902]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
VSVLAD
Member

Откуда: Краснодар
Сообщений: 1398
Яндекс, VBA, .NET тоже говорят 1
30 ноя 12, 15:57    [13556925]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Добрый Э - Эх
Guest
VSVLAD
Добрый Э - Эх,

Калькулятор винды думает иначе
калькулятор винды даже 2+2*2, какие ему степени...
30 ноя 12, 15:58    [13556936]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Добрый Э - Эх
Guest
Не дописал...
Добрый Э - Эх
VSVLAD
Добрый Э - Эх,

Калькулятор винды думает иначе
калькулятор винды даже 2+2*2 не может правильно расчитать, какие ему степени...
30 ноя 12, 15:59    [13556945]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
VSVLAD
Member

Откуда: Краснодар
Сообщений: 1398
Добрый Э - Эх,

Это да, зависит от вида: инженерный или обычный. Я всегд использую инженерный... Про ошибку не читал, но видимо это фича
30 ноя 12, 16:01    [13556965]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35384
Блог
Да, начет "5" и "5." нашел на msdn:
http://msdn.microsoft.com/ru-ru/library/ms187746.aspx
В инструкциях Transact-SQL константа с десятичным разделителем автоматически преобразуется в значение типа данных numeric с минимально необходимой точностью и масштабом.Например, константа 12.345 преобразуется в значение numeric с точностью 5 и масштабом 3.


а вот "фича" 0^0 вроде не документирована
30 ноя 12, 16:43    [13557326]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
все в википедию!
Guest


К сообщению приложен файл. Размер - 12Kb
30 ноя 12, 17:40    [13557814]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
О ПТ и сюда добрался
30 ноя 12, 17:42    [13557824]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
это кто?
Guest
а кто такое ПТ?
30 ноя 12, 17:48    [13557867]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35384
Блог
>>все в википедию!,

и что? википедия - это истина в последней инстанции?
в любом случае вот эта выкладка не противоречит вашей
x^0 = x^(1-1) = x^1 * x^(-1) = x/x = > 0/0
а в ВУЗе нам говорили, что 0/0 является неопределенностью

интересует мнение математиков
30 ноя 12, 17:59    [13557952]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
все в википедию!
Guest
Критик,
ну але, а я про что?
вроде по-русски написано, что 0^0 -- результат не определен.
если уж на то пошло, у меня диплом мат-меха.
но чтоб не выглядело отсебятиной, типа википедию цитирую.
а если очень хотелось услышать мнение математика-педанта,
пожалуйста, меняю ник сo "все в википедию!"
на "все_кроме_критика_особенно_калькуляторы_языки_прогр_выдающие_ответ_калькуляторы_и_прочие_кто_говорит_любое_число_в_нулевой_это_1 -- в википедию!"
30 ноя 12, 18:09    [13558028]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
philips
Member

Откуда:
Сообщений: 365
Представляете что было бы если неопределенность оставили при программировании.
30 ноя 12, 18:31    [13558140]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
все в википедию!
Guest
philips,

и че бы было?
при делении на 0 та же неопределенность.
вылетает же ошибка, и никто не удивляется.
30 ноя 12, 18:36    [13558174]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Dima T
Member

Откуда:
Сообщений: 15860
philips
Представляете что было бы если неопределенность оставили при программировании.

NULL - это как раз и есть неопределенность
30 ноя 12, 20:00    [13558639]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Dima T
Member

Откуда:
Сообщений: 15860
Критик
SELECT Power(0,0)


выдает 1, а собственно почему?

Потому что любой баг попавший в релиз становится фичей.
30 ноя 12, 20:05    [13558658]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35384
Блог
все в википедию!,

недочитал, увидел 1 в тексте и последнюю строчку на картинке читать не стал )
1 дек 12, 06:56    [13560863]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
Добрый Э - Эх
Guest
Dima T
Потому что любой баг попавший в релиз становится фичей.
Только документированный баг становится фичей. Остальные баги, попавшие в релиз, как правило - исправляются последующими за релизом заплатками
1 дек 12, 06:58    [13560864]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
philips
Member

Откуда:
Сообщений: 365
Особенно учитывая что
select POWER(0,1)
дает 0.
1 дек 12, 14:46    [13561425]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
ZOOKABAKODER
Member

Откуда:
Сообщений: 178
Ребята вы чего?
Вам ж во втором ответе напомнили
super-code
Критик, любое число в сетпени 0 равно 1 !


Потом предметно показали из википедии картинку. В википедии написано то, что написано в учебниках, я проверил. И вообще туда так просто не напишешь, там всё проверяется и на всё надо пруф давать.
Математика это наука о австрактных объектах и операциях над ними. И объекты и операции чётко описаны системой аксиом. Это неоспоримые законы, т.к. если их нарушить то всё развалится. Сказано же что для любых a , а^0=1. Что вы спорите? Это в жизни свойства чего-то могут быть не достаточно изучены или попросту может быть ошибка в выводах, а в математике все абстрактное, всё придумано и описано чётко.

Если уж пойти по вашему пути, то степени отрицательной и нулевой быть не может, т.к. показатель степень это то, сколько раз надо перемножить основание. Значит ноль раз его не перемножить и минус икс раз его тоже не перемножить. Поэтому ввели аксиому, что всё что угодно в степени ноль это 1. Посмотрите график любой степенной функции, там только 1 может быть.

Критик, вообще неопределённость это из оперы про пределы, а у нас тут определённые значения а не пределы. Это если задача стоит lim(x^0|x->0) тогда это про неопределённость. И прости, от неопределённости надо уходить, а не к ней идти. Эдак любую функцию в неопределённость можно превратить.
1 дек 12, 16:23    [13561720]     Ответить | Цитировать Сообщить модератору
 Re: Пятничный баг с power?  [new]
invm
Member

Откуда: Москва
Сообщений: 9833
ZOOKABAKODER,

13557814 -- перечитываем последнюю строчку до просветления.
1 дек 12, 16:39    [13561764]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить