注册 登录
编程论坛 SQL Server论坛

关于IDL里的double数据对应sql server 2005中的字段类型问题

shelley5199 发布于 2009-12-24 11:29, 2516 次点击
初次来到这里,而且也是sql server新手,还望大家多多指教!
小女子在做项目的时候采用IDL作为开发语言,sql server2005管理数据,我的数据是从二进制文件按照长度为8个字节的double类型读出来的,比如122.14545,0.010000000…… 为了将这些数据读入数据表中,我用了decimal(16,8)还有float读取数据得到的都不是原始数据,比如采用decimal(16,8),122.14545在数据表中却读成122.00000000,这是为什么呢?
用float读122.14545是可以,但是0.010000000却不行了,读出来是个近似值,应该怎么做合适呢,各位有经验的能指示一下吗,折腾好久了,先谢谢了!
2 回复
#2
happynight2009-12-25 11:52
你是用SQL SERVER直接在文件中读的还是 通过IDL读了后插入SQL SERVER的
如果是IDL,那你测试下你直接通过IDL往数据库中插入数据122.14545是否能正确保存
按照你的需求在数据库中的数据类型最好还是使用Decimal或Numeric 应该是不会失真的
#3
shelley51992009-12-26 16:42
回复 2楼 happynight
谢谢你的回复!我是在IDL里面将数据读出来之后,再按SQL SERVER里面设计好的字段把数据分别加进去。比如字段名是ZDJD,对应第一个数据a = 122.83000, 我用testRS->AddRecord,a之后,数据表里的数据变成了122.00000000, 我试着直接写testRS->AddRecord,122.83000,或者testRS->AddRecord,122.83000D,结果都是122.00000000,所有人都跟我说用decimal是可以的,我是用的decimal啊,可是怎么会数据失真呢~ 是不是数据记录的添加操作哪儿出问题了呢?
1