テストデータセットを含む次の表があります。
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');
したがって、テーブルは次のようになります。
今私の問題は、私が使用するときです:
SELECT SUM(amount) FROM test;
847.9999999999999
期待されるのではなく、次の結果が得られます848
。
小数を丸めない理由はありますか?
アップデート:
私はこれをMySQL Server: 5.5.17
(Windows)とMySQL Server: 5.5.20
Centosでテストしました