sql server 的double类型数据问题

xc7042318 2010-10-14 11:36:01
我在一个mfc程序中使用了ado 连接数据库
我在程序中使用的数据都是double型 但是发现sql server里面并没有double类型的数据
这样的话我应该怎样讲程序的数据存入数据库呢? 直接用insert的sql语句?
我读取数据的时候读取的数据是_variant_t 那样我怎么将他转化为double型呢?
期待大侠的解答
...全文
1407 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xc7042318 2010-10-16
  • 打赏
  • 举报
回复
嗯 好了 我解决了 用float是可以的 decimal也可以
读取的时候可以将_variant_t直接转化为double 米有问题
谢谢各位了 散分把~~~
looklzg1108 2010-10-15
  • 打赏
  • 举报
回复
double类型转float会数据丢失
如果楼主的数据确实需要精确到16位的话,数据库对应的字段直接用字符类型吧。
如果不需要精确到16为,可以将double转换为float再插入数据库,对对应字段设置为float即可。
蜗牛的信仰 2010-10-15
  • 打赏
  • 举报
回复
vc double

double dTestValue=0;
这样转换后传递: _variant_t(dTestValue);

数据库 用这个类型就可以了 decimal
xc7042318 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tttyd 的回复:]
C/C++ code
double d = 2.1;
VARIANT var;
var.vt = VT_BYREF|VT_R8;
var.pdblVal = d;


使用_variant_t的话就更简单了,_variant_t应该可以与double直接转换的。
[/Quote]


但是sql里面存的是float类型啊 ~~~~
VT_BYREF|VT_R8指向的是double指针? 这样能转么?
job82824 2010-10-15
  • 打赏
  • 举报
回复
decimal(m,n)数据类型表征了浮点型数据的精度,可以用来与double转换
雪影 2010-10-14
  • 打赏
  • 举报
回复
double d = 2.1;
VARIANT var;
var.vt = VT_BYREF|VT_R8;
var.pdblVal = d;

使用_variant_t的话就更简单了,_variant_t应该可以与double直接转换的。

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧