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

慎用 Oracle Float 类型
遇到个非常奇怪的问题:
两个中间表表A和表B,用不同的结构对几个原始表中的收入等数据进行了汇总;按理说,俩表按同样的某个Col做分组后查询出的收入income应该是相同的!

可是对表A和表B中数据做按某列Col的分组后,得出的收入值income差5块钱:分别对俩表执行sql的结果是俩表按Col分组的income表B比表A少5块钱。

表A中income为Number类型;表B中income为float类型;将表B的income改为Number类型后,结果与A一致了!

究其原因,就是oracle float数据类型的精度捣的鬼!

关于oracle中float类型的精度:

http://www.cnblogs.com/boulder19830907/archive/2008/01/31/1059627.html
http://button.iteye.com/blog/225286


Oracle Data Type:
http://www.techonthenet.com/oracle/datatypes.php
http://ss64.com/ora/syntax-datatypes.html