今天在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
在Oracle9i数据库中创建新表时,设置字段类型为float(8),导致存储955.66时变为956。经研究发现float(X)的X表示二进制精度,实际精度为int(X*0.30103),故8位精度为2位,修改为float(20)后问题解决。
116

被折叠的 条评论
为什么被折叠?



