From: Dan Nelson
Date: February 22 2005 3:22am
Subject: Re: Odd rounding errors with 4.1
List-Archive: http://lists.mysql.com/mysql/180318
Message-Id: <20050222032202.GA253@dan.emsphone.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
In the last episode (Feb 21), Martin said:
> Version: Using 4.1.10 on WinXP pro, currently interacting with it
> using the Query Browser for testing.
>
> I have a table set up that contains a column of DECIMAL(15,12) --
> financial data, where the precision is highly important. I am
> building up a series of SQL statements, and I noticed that when doing
> SUM() on this decimal column, I get a strange rounding error (see
> below), and was hoping that someone out there can help me with this.
>
> My recent test involved the following three values from the column:
> 2.4950
> 2.5950
> 2.7700
> (Chosen, for this example, as they are precise at few decimal places).
>
> When I use a SUM() on these I get: 7.860
>
> If I switch the column over to a FLOAT, then the SUM() becomes
> 7.8599998950958
>
> Using Excel to test the numbers, or hand-calculating, I get:
> 7.8550.
You hand calculations (and Excel) are wrong, apparently. Here's my
hand-calculation:
1 11 1
2.495 5.090
+ 2.595 + 2.770
======= =======
5.090 7.860
, which matches MySQL's results.
--
Dan Nelson
dnelson@stripped