A quick experiment shows that if either numerator or denominator are decimal, that is preserved in the end result. Probably true for basic math operations in general.
GW
-----Original Message-----
From: pgsql-general-owner@xxxxxxxxxxxxxx on behalf of Gregory Williamson
Sent: Thu 11/29/2007 10:37 PM
To: Postgres User; pgsql-general
Subject: Re: Simple math statement - problem
The question:
>
> How can I write statements that returns a decimal?
>
>
billing=# select 1/100;
?column?
----------
0
(1 row)
As you said ...
So make everything decimal:
billing=# select 1.0/100.0;
?column?
------------------------
0.01000000000000000000
Or:
billing=# select 1::decimal/100::decimal;
?column?
------------------------
0.01000000000000000000
I think that when you use integers you lose precision right out the gate. Others can provide better insight I hope ...
HTH,
Greg Williamson
Senior DBA
GlobeXplorer LLC, a DigitalGlobe company
Confidentiality Notice: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information and must be protected in accordance with those provisions. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message.
(My corporate masters made me say this.)