龙须面

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

IEEE 754标准里:浮点型float是非精确类型,但是在oracle里的定义是float是精确类型,binary_float是非精确类型

例如:

create table float_t (a float);
insert into float_t values (3.55555);
select * from float_t ;

查询到的结果是:3.55555

 

create table float_t (a binary_float);

insert into float_t values (3.55555);

那么查询出来的结果就是:3.55555009841919

但是这个DQL任然有效:select * from float_t where a = 3.55555;输出的结果仍然是:3.55555009841919

sql规范里提供的精确存储浮点型数据的类型:number/decimal/dec,三个效果完全一样,

 

综上所述:设计到精确数值计算的一定要用使用合适的类型来存储数据!

posted on 2012-11-27 17:43  木子小黑  阅读(211)  评论(0编辑  收藏  举报