我有下表和测试数据集:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`desc` varchar(20) DEFAULT NULL,
`amount` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8
insert into `test` (`id`, `desc`, `amount`) values('5',NULL,'847.3');
insert into `test` (`id`, `desc`, `amount`) values('6',NULL,'-847');
insert into `test` (`id`, `desc`, `amount`) values('7',NULL,'847.3');
insert into `test` (`id`, `desc`, `amount`) values('8',NULL,'-847');
insert into `test` (`id`, `desc`, `amount`) values('9',NULL,'847.4');
Run Code Online (Sandbox Code Playgroud)
所以表格如下:

现在我的问题是,当我使用时:
SELECT SUM(amount) FROM test;
Run Code Online (Sandbox Code Playgroud)
我得到以下结果847.9999999999999而不是预期的结果848.
任何想法为什么我不会得到小数四舍五入?
更新:
我已经在MySQL Server: 5.5.17(windows)和MySQL Server: 5.5.20Centos 上测试了这个