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,三个效果完全一样,
综上所述:设计到精确数值计算的一定要用使用合适的类型来存储数据!