From: | Philippe Ferreira <phil(dot)f(at)worldonline(dot)fr> |
---|---|
To: | spot(at)tele2(dot)se |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: SELECT with REAL... |
Date: | 2006-02-07 17:43:43 |
Message-ID: | 43E8DC4F.1070300@worldonline.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
Thank you all for your comments.
Finally, I think I will simply use the data type NUMERIC instead of REAL
in all my columns !!
This type is more appropriate to store prices !
Philippe Ferreira.
>
> Try this:
>
> SELECT 13.95 = 13.95::real;
>
> It should yield false, because the first number constant is presumed
> to be of type numeric, which is an exact format, and the second
> constant is explicitly cast to a single precision floating point
> number, in which it doesn't fit*, and therefore actually is stored as
> 13.9499998**. So, the comparison is in fact 13.95=13.9499998, which
> of course is false.
>
> To see the effect in another way, try:
>
> SELECT 13.95::real + 0.00000000000001;
>
> *) The reason it doesn't fit is that the floating point
> representation is using base 2, instead of base 10.
> **) The exact value could vary, depending on the floating point
> implementation of your system. This is what my implementation does.
From | Date | Subject | |
---|---|---|---|
Next Message | Joshua D. Drake | 2006-02-07 17:45:31 | Re: Syncing Databases Weekly |
Previous Message | Michael Fuhr | 2006-02-07 17:38:25 | Re: what is the data type for files(.txt,.doc,.jpeg) in pgsql |