今天在Oracle9i数据库中建了一个新表,某字段数据类型设为float,大小为8。结果存储数据为955.66时,数据库中显示为956,非常不解,将此字段大小改为20,结果数据存储就正常了。
不明这是为什么,经过在网上搜索资料得知:float(X)中的X是二进制的精度,他的换算规则是binary precision=int(X*0.30103)。 因此我们这里实际上的精度应该等于int(8*0.30103)=2,即小数点后精度为2。
详细讲解请见:http://jimmyhe1981.itpub.net/post/19858/130417