日期:2014-05-16  浏览次数:20456 次

oracle存储浮点数的一个bug?
版本10.2.0

balance number(16,8).

insert into tablea(balance) values(99999999.99999999)
结果为100000000.00000000,居然也没报错。
insert into tablea(balance) values(trunc(99999999.99999999,8))
仍然为100000000.00000000,仍然没报错。

insert into tablea(balance) values(trunc(99999999.99999994,8))
结果为99999999.99999990。
insert into tablea(balance) values(99999999.99999994)
结果为99999999.99999990。

换个字段 ratio number(9,8)
insert into tablea(balance) values(9.99999999)
结果为9.99999999,这个是正常的。

也就是说,我存入不了99999999.99999999这个数,为啥要四舍五入啊。

为啥啊?