Re: numeric precision when raising one numeric to another.

Поиск
Список
Период
Сортировка
От Florian G. Pflug
Тема Re: numeric precision when raising one numeric to another.
Дата
Msg-id 428E1D1C.8060301@phlo.org
обсуждение исходный текст
Ответ на Re: numeric precision when raising one numeric to another.  (Martijn van Oosterhout <kleptog@svana.org>)
Список pgsql-general
Martijn van Oosterhout wrote:
> On Thu, May 19, 2005 at 02:25:58PM -0700, Dann Corbit wrote:
>
>>Hmmm....
>>I underestimated.
>>
>>pow(99999.99999,99999.99999) =
>
>
> Yeah, a number with x digits raised to the power with something y digits
> long could have a length approximating:
>
> x * (10^y) digits
>
> So two numbers both 4 digits long can have a result of upto 40,000
> digits. You're only going to be able to them represent exactly for
> cases where y is small and integer.
>
> What's a meaningful limit? Do we simply say, you get upto 100 digits
> and that's it? Or an extra parameter so you can specify directly?
I believe that even this limit is wrong. Consider sqrt(2), which is
2^(1/2).
2 has 1 digit, 1/2 has 2 digits, but the result is irrational, and
therefor cannot be represented with a finit amount of digits.

I believe that there is no mathematically correct way (i.e. a way which
guarantees a 100% correct result) to define pow(numeric, numeric) - at
least in the general case.

Вложения

В списке pgsql-general по дате отправления:

Предыдущее
От: "Jim C. Nasby"
Дата:
Сообщение: Re: numeric precision when raising one numeric to another.
Следующее
От: "Florian G. Pflug"
Дата:
Сообщение: Re: numeric precision when raising one numeric to another.