100分大奉送!!决不食言!变量转换!

SkyTrooper 2002-11-30 09:26:09
环境vc6 ,ado,oracle
VARIANT myVal = pRecordSet->GetFields()->GetItem("val")->Value;
pRecordSet记录集
myVal变体型
该字段是浮点数,好长,比如
1.23475879765365865869507676238E04
怎末得到该数,取到一个double变量中

myVal 是 VT_DECIMAL型的

这个变量类型好复杂!!
对于字符串啊整形啊好对付,就是好长的浮点型,做不了。
应该是由存储了96位,分高32位,中32位和低32位,或者高32和低64
我不是专业,不晓得怎么存储的又是怎么换算的,希望高手指教一下。

这个值可以这么得到,
使用SQL语句查询
表格myTable一个字段DblVal
Select sum(DblVal) from myTable

如果出来的不是好长的那种
比如 1.345355646958786925048397548735645E05
而是12323.234
就改用
Select sum(sqrt(DblVal)) from myTable
可能就是小数好多的那种

各位大侠,这厢有礼了!!!!

这是第四个帖子了,难道大家要我失去信心吗?

...全文
31 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SkyTrooper 2002-11-30
  • 打赏
  • 举报
回复
在线等待,我昨天等了半天了!
谁让我不是专业啊,再说VC学了不过几个月,好多内容是新接触。
我只能操作数据库,VC好多不熟悉呢!
SkyTrooper 2002-11-30
  • 打赏
  • 举报
回复
帮忙了帮忙了,各位过路神仙,赶快下凡吧!
SkyTrooper 2002-11-30
  • 打赏
  • 举报
回复
谢谢!
呵呵,我是查询时自动产生的啊,
select sum(sqrt(len)) as length from table
就算做视图变量类型也改不了吧?


那位再给看一下
lzd 2002-11-30
  • 打赏
  • 举报
回复
我觉得最好的解决方法就是把数据库里的类型设为字符型就什么问题都解决了..
SkyTrooper 2002-11-30
  • 打赏
  • 举报
回复
取出来的本身是VARIANT ,
要是float我就不用转换了
jason_sun22 2002-11-30
  • 打赏
  • 举报
回复
你先取出来。。然后再转换。。

float a = 4.3;
double b = (double)a;

4,011

社区成员

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

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