Re: numeric precision when raising one numeric to another. - Mailing list pgsql-general

From Florian G. Pflug
Subject Re: numeric precision when raising one numeric to another.
Date
Msg-id 428E1D1C.8060301@phlo.org
Whole thread Raw
In response to Re: numeric precision when raising one numeric to another.  (Martijn van Oosterhout <kleptog@svana.org>)
List 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.

Attachment

pgsql-general by date:

Previous
From: "Jim C. Nasby"
Date:
Subject: Re: numeric precision when raising one numeric to another.
Next
From: "Florian G. Pflug"
Date:
Subject: Re: numeric precision when raising one numeric to another.