Re: round off problem

new topic     » goto parent     » topic index » view thread      » older message » newer message

George Walters wrote:
> 
> I have imported general ledger data from a working system in another OS 
> into mysql using Matt's ODBC tools. Trying to finish the  EU  general 
> ledger  software, I've run into serious  round  off issues. Here's a 
> couple of examples to show the problem.
> 
> A typical account balance:
> 
> Mysql shows  -1143.46  which is  correct
> EU trace shows -1143.459961 which is not accurate to 15 places as the EU 
> manual states.
>
> Totalling the credits and debits over the entire file of transactions 
> gives the following (printing with a mask of  %12.2f.)
> 
> Debits = 4642782.63
> Credits= 4642782.56
> 
> Off by 4 cents. The input data from the other OS is balanced. It looks 
> like there's about 8 places of accuracy not 15.
> The data records are always read into a sequence, then arithmetic is 
> done with atoms.
> 
> Any Ideas?

I think you may be having trouble with a 32-bit floating point number vs
a 64-bit number.  Try:

? float64_to_atom( atom_to_float64( 1143.46 ) )
? float32_to_atom( atom_to_float32( 1143.46 ) )

I get:

1143.46
1143.459961

What are the actual datatypes in the MySQL database?  And how are you
checking the value from MySQL?  You can see how odbc.ew converts data
by looking at the convertData() function.

Matt Lewis

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu