Re: Significant Digits in Floating Point Datatype

From: Bill Moran <wmoran(at)potentialtech(dot)com>
To: Lee Hachadoorian <lee(dot)hachadoorian(at)gmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Significant Digits in Floating Point Datatype
Date: 2011-11-20 19:56:01
Message-ID: 4EC95B51.40908@potentialtech.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 11/20/11 1:29:37 PM, Lee Hachadoorian wrote:
> I would like to store some in a single array some data that is
> conceptually related, but some of the data is floating point, and some
> of it is integer. Obviously the integer data *can* be stored as double
> precision, but I need to know about potential loss of precision. Double
> precision has "a precision of at least 15 digits." I would assume that
> that would mean that for double precision, 15 digits of data would be
> faithfully preserved. But I found a question on the list where a value
> stored as 955.60 sometimes returns as 955.599999999998.
> (http://archives.postgresql.org/pgsql-general/2011-08/msg00144.php) If
> this is the case, what does "a precision of at least [x] digits"
> actually mean? And can I reliably retrieve the original integer by
> casting to int (or bigint) if the number of digits in the original
> integer is less than 15?

Given Tom's answer, you may want to consider whether the DECIMAL
data type is a better fit for your needs.

--
Bill Moran

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2011-11-20 20:13:29 Re: Installed. Now what?
Previous Message Adrian Klaver 2011-11-20 19:49:43 Re: Table Design question for gurus (without going to "NoSQL")...