Re: numeric precision when raising one numeric to
От | Jim C. Nasby |
---|---|
Тема | Re: numeric precision when raising one numeric to |
Дата | |
Msg-id | 20050520164244.GX44623@decibel.org обсуждение исходный текст |
Ответ на | Re: numeric precision when raising one numeric to (Stephan Szabo <sszabo@megazone.bigpanda.com>) |
Список | pgsql-general |
That's because numerics default to 16 or something similar. If you want more precision just explicitly cast it: decibel=# select power(0.1::numeric(20,20),17); 0.00000000000000001000 On Fri, May 20, 2005 at 09:30:16AM -0700, Stephan Szabo wrote: > > On Fri, 20 May 2005, Tom Lane wrote: > > > Has anyone bothered to actually look into the code? > > > > regression=# select power(2::numeric,1000); > > power > > --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376.0000000000000000 > > (1 row) > > > > AFAICT the only thing missing is a pg_operator entry linked to the > > function. > > It appears fairly limited however given that you rapidly run into the > numeric maximum length for exp. > > It also doesn't seem to work terribly well: > > sszabo=# select power(0.1::numeric, 15); > power > -------------------- > 0.0000000000000010 > (1 row) > > sszabo=# select power(0.1::numeric, 16); > power > -------------------- > 0.0000000000000001 > (1 row) > > sszabo=# select power(0.1::numeric, 17); > power > -------------------- > 0.0000000000000000 > (1 row) > > sszabo=# select power(0.1::numeric, 17)*100; > ?column? > -------------------- > 0.0000000000000000 > (1 row) > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org > -- Jim C. Nasby, Database Consultant decibel@decibel.org Give your computer some brain candy! www.distributed.net Team #1828 Windows: "Where do you want to go today?" Linux: "Where do you want to go tomorrow?" FreeBSD: "Are you guys coming, or what?"
В списке pgsql-general по дате отправления: