Re: rounding problems

From: Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>
To: Justin <justin(at)emproshunts(dot)com>
Cc: Lincoln Yeoh <lyeoh(at)pop(dot)jaring(dot)my>, pgsql-general(at)postgresql(dot)org
Subject: Re: rounding problems
Date: 2008-05-12 20:29:06
Message-ID: 4828A892.2030006@postnewspapers.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Justin wrote:

> No floating point is being used every variable is declared as numeric on
> the Postgresql side and in the C++ which is the UI side everything is
> double.

`double' in C++ refers to double precision floating point. `double' is
subject to all the usual fun with rational decimals being irrational
binary floats (and vice versa).

One of the reasons I chose Java for my current work is that it has a
built-in decimal type (like `numeric') called BigDecimal . This makes
working with exact quantities a lot easier as there's no conversion and
rounding occurring each time data goes to/from the database.

Are there any particular decimal/numeric libraries people here like to
use with C++ ? Or do you just use double precision floats and a good
deal of caution?

I'd expect that using double would be OK so long as the scale of your
numeric values never approaches the floating point precision limit of
the double type. I'm far from sure about that, though, and it'd be handy
to hear from people who're doing it. Personally I like to stick to
numeric/decimal types.

--
Craig Ringer

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Vic Simkus 2008-05-12 20:38:38 Recovering database after disk crash
Previous Message Merlin Moncure 2008-05-12 20:20:08 Re: changing the endianness of a database