comp.lang.ada
 help / color / mirror / Atom feed
From: "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca>
Subject: Re: Floating Decimal Package/Library?
Date: Tue, 16 Jul 2002 13:53:55 -0400
Date: 2002-07-16T13:53:55-04:00	[thread overview]
Message-ID: <3D345DB3.5080609@cogeco.ca> (raw)
In-Reply-To: AxPY8.627$mR2.38408321@newssvr14.news.prodigy.com

tmoran@acm.org wrote:

>>>When doing financial software, you become very interested
>>>
>>If the static requirement of Package decimal could be simply circumvented
>>
>   What kind of financial software needs more than 18 decimal digits?
> 18 digits allows 9,999 trillion dollars to one cent precision.


First of all, I need a data type that can manage the data
being stored by the PostgreSQL data column type "decimal"
(or "numeric"), which is arbitrary precision (at least to
a point -- 1000 digits or so).

Secondly, if you perform any computations in a binary floating
point data type and think that 18 digits of precision is going
to compensate for the binary nature of the calculation, then
you are showing your ignorance of the difference between
binary floating point calculations and decimal ones. You'll
have to do your own homework on this.

Systems that are written to use binary floats for accounting
purposes, always leave the programmer with
the joy all of those "off by one penny" errors. Even
a simple hash total can become a major challenge because
of rounding problems that add to the error over 1000's
of records. Without naming names, I know of a specific
instance where one financial company cannot always get
the hash totals right in their hash total record. Most
of the time it works, but occaisionally it will be out
by one. Decimal totals make this perfectly easy to
accomplish. And this is just speaking of a summing
process.

What I've ended up doing for now is to cut the PostgreSQL

decimal code out of the engine and mangle it for my own
use (with Ada binding in the works).  Its not a perfect
solution, but it works.

Finally, I should mention that I am using GNAT. Unless I
am mistaken, it seemed that the decimal support wasn't
exactly decimal (I'd have to go back and recheck, but I
got the impression that it is implemented in binary
floating point). If it truly is implemented in decimal,
then I'd like to know about it (I have other reasons
to care about this).

Oh, one more thing.. how many Turkish Liras does the
amount "9,999 trillion dollars" come to?  Well, let's
see: You'd have to multiply that number by 1,089,334.54877
today (assuming the former figure was Canadian $). Its
not a totally unmanageable number, but it starts to
huge if you want to be precise about it.


Warren.




  parent reply	other threads:[~2002-07-16 17:53 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-12 17:19 Floating Decimal Package/Library? Warren W. Gay VE3WWG
2002-07-12 22:58 ` Robert Wessel
2002-07-12 23:30   ` Dann Corbit
2002-07-15 13:34     ` Warren W. Gay VE3WWG
2002-07-16  5:04       ` Robert C. Leif
2002-07-16  7:01         ` tmoran
2002-07-16 15:50           ` Robert C. Leif
2002-07-17  1:24             ` tmoran
2002-07-17  2:53               ` Robert C. Leif
2002-07-17  4:41                 ` tmoran
2002-07-17 16:30                   ` Warren W. Gay VE3WWG
2002-07-17 22:09                     ` tmoran
2002-07-29 17:05                       ` Warren W. Gay VE3WWG
2002-07-29 17:41                         ` tmoran
2002-07-30  8:58                           ` Jean-Pierre Rosen
2002-07-30 16:20                           ` John H. Lindsay
2002-07-16 16:32           ` Pascal Obry
2002-07-16 17:53           ` Warren W. Gay VE3WWG [this message]
2002-07-17  1:24             ` tmoran
2002-07-17  8:28               ` Vadim Godunko
2002-07-17 13:32                 ` Warren W. Gay VE3WWG
2002-07-22 23:33                   ` Robert I. Eachus
2002-07-23 13:16                     ` Marin David Condic
2002-07-24 15:18                       ` Darren New
2002-07-24 15:43                         ` Hyman Rosen
2002-07-24 16:17                         ` Fraser Wilson
2002-07-17 13:30               ` Warren W. Gay VE3WWG
2002-07-13 21:55 ` Björn Lundin
2002-07-15 13:37   ` Warren W. Gay VE3WWG
2002-07-17 21:56 ` Waldek Hebisch
2002-07-18 14:13   ` Robert C. Leif
2002-07-19 14:41     ` Waldek Hebisch
2002-07-19 17:29   ` Warren W. Gay VE3WWG
2002-07-19 21:50     ` Waldek Hebisch
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox