数字写入sql server数据库为什么会发生改变?
我用asp+sql server数据库时发现将数据保存到数据库时发生变化,其中数据库表中字段的类型是:float,有默认值为0。
以期望将20.1写入数据库表中为例,我曾分别用insert into方式 和rs.addnew方式将其保存到数据库中,但从sql查询分析器或sql企业管理器中看到的数据就不是20.1 而是20.09999999999999,有时是20.10000000000001,从数据库输出显示时如果用formatnumber函数可以正确的显示,但是如果涉及数据的比较时就会有问题了:20.1>20.09999999999999,20.1<20.10000000000001,这样就会出现错误提示。
想过保存时先用formatnumber或round函数处理,可是也没有实现。而且保存数据是不是每次都会出现,但出现的几率很大,已严重影响整个软件系统的正常运行。
请教各位,这个问题该如何解决?