| Bug #27984 | Long Decimal Maths produces truncated results | ||
|---|---|---|---|
| Submitted: | 20 Apr 2007 14:06 | Modified: | 18 Jun 2007 19:41 |
| Reporter: | Giles McArdell | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Data Types | Severity: | S2 (Serious) |
| Version: | 5.0.27/5.1 | OS: | Linux (Redhat) |
| Assigned to: | Alexey Botchkov | CPU Architecture: | Any |
| Tags: | decimal, Math, truncate | ||
[20 Apr 2007 14:06]
Giles McArdell
[20 Apr 2007 14:32]
MySQL Verification Team
Thank you for the bug report.
[miguel@light 5.0]$ bin/mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.42-debug Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 *
-> (99.999999999998 / 100) b;
+--------------------------------+--------------------------------+
| a | b |
+--------------------------------+--------------------------------+
| 0.0000000009999800000000000000 | 0.9999999999999800000000000000 |
+--------------------------------+--------------------------------+
1 row in set (0.02 sec)
[miguel@light 4.1]$ bin/mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.23-debug
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
+------------------+------------------+
| a | b |
+------------------+------------------+
| 0.99999999999998 | 0.99999999999998 |
+------------------+------------------+
1 row in set (0.01 sec)
[19 May 2007 21:06]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/27034 ChangeSet@1.2490, 2007-05-20 00:34:53+05:00, holyfoot@mysql.com +3 -0 Bug #27984 Long Decimal Maths produces truncated results decimal_round failed to round the number starting with nine 9-s, setting first nine digits of the decimal to zero.
[21 May 2007 15:15]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/27077 ChangeSet@1.2490, 2007-05-21 19:15:35+05:00, holyfoot@mysql.com +3 -0 Bug #27984 Long Decimal Maths produces truncated results decimal_round failed to perform a correct rounding of a decimal number if its first nine digits were '9'. It just sets those digits to 0.
[21 May 2007 18:23]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/27090 ChangeSet@1.2490, 2007-05-21 22:22:47+05:00, holyfoot@mysql.com +3 -0 Bug #27984 Long Decimal Maths produces truncated results. decimal_round failed to perform a correct rounding of a decimal number if its first nine digits were '9'. It just sets those digits to 0.
[4 Jun 2007 21:21]
Bugs System
Pushed into 5.1.20-beta
[4 Jun 2007 21:23]
Bugs System
Pushed into 5.0.44
[18 Jun 2007 19:41]
Paul DuBois
Noted in 5.0.44, 5.1.20 changelogs. DECIMAL values beginning with nine 9 digits could be incorrectly rounded.
