Skip site navigation (1) Skip section navigation (2)

Re: [ADMIN] float4

From: Don Garrett <garrett(at)bgb-consulting(dot)com>
To: JT Kirkpatrick <jt-kirkpatrick(at)mpsllc(dot)com>
Cc: "'pgsql-interfaces(at)hub(dot)org'" <pgsql-interfaces(at)hub(dot)org>
Subject: Re: [ADMIN] float4
Date: 1999-06-28 21:06:51
Message-ID: 3777E3EB.763AEDFB@bgb-consulting.com (view raw or flat)
Thread:
Lists: pgsql-interfaces
  No, use one field for both. But use the UNIT pennies. To get the
number of dollars, divide by 100, to get the number of pennies (without
dollars) do (value  % 100).

  You can use the single value for additions, subtractions, totals and
everything else, just as if it were type money. In fact, this is
probably how type money stores things internally.

  And no, I don't know anything about ODBC, so I have no idea why you
are having trouble with the money type.

JT Kirkpatrick wrote:
> 
> ouch.  hard to think of dollars only when you are paying vendors,
> technicians, billing customers, etc.  surely i won't have to make an int
> field for the dollars and an int field for the cents!!!  the money field
> would work nicely if the odbc driver would handle it correctly!
> 
> i forwarded this to the odbc list -- any idea why a money field can't be
> used from msaccess97 through the odbc??
> 
> thanks for your help!
> 
> jt
> 
> -----Original Message-----
> From:   Don Garrett [SMTP:garrett(at)bgb-consulting(dot)com]
> Sent:   Monday, June 28, 1999 4:25 PM
> To:     JT Kirkpatrick
> Subject:        Re: [ADMIN] float4
> 
>   You shouldn't use a float at all for exact amounts. Floats handle
> arbitrary precision, but do it rounding off values somewhat. The way the
> round off works is based on the (base 2) internal representation and so
> it never quite seems to make sense in decimal. It's possible on some
> machines/float formats to have "if (1.0 + 1.0 = 2.0)" evaluate to false.
> 
>   When I first started programming, I did a very simple custom
> accounting package using floats.... and had to go back and rewrite all
> of it.
> 
>   You will do better to use integers (no rounding at all) and consider
> the contents to be the number of pennies involved, not dollars.
> 
> JT Kirkpatrick wrote:
> >
> > we have a database (linux, 6.4.2, new odbc, connections from msaccess /
> > win98) -- access doesn't fully appreciate the monetary type in postgres,
> so
> > we made all monetary fields FLOAT4's.  weird stuff -- or maybe not to you
> > -- we insert 23516.69 into a float4 field directly in psql, and then
> select
> > it, and it shows 23516.7.  this is not good for a field used for MONEY!!!
> >  what are the limitations of float4?  should i have used float8?
> >
> > thanks for any help you can offer. . .
> >
> > jt
> 
> --
> Don Garrett                                          dgarrett(at)acm(dot)org
> BGB Consulting                  http://www.bgb-consulting.com/garrett

--
Don Garrett                                          dgarrett(at)acm(dot)org
BGB Consulting                  http://www.bgb-consulting.com/garrett

In response to

pgsql-interfaces by date

Next:From: Martin KubaDate: 1999-06-28 21:47:23
Subject: bug in storing date ?
Previous:From: JT KirkpatrickDate: 1999-06-28 20:53:28
Subject: RE: [ADMIN] float4

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group