类型问题,我想应该很简单。。。。
ADO调用部分代码:
try
{
CString strSQL;
if(m_jiezhi==2&&m_xiangtai==1)
{
int a=(m_wendu+0.5);
float b=a;
strSQL.Format(_T("select * from 水的物性参数 where 温度=%f"),b);
}
pRecordset->Open((_bstr_t)strSQL,conn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error&error)
{
CString erroMsg;
erroMsg.Format("error:%s",(LPTSTR)error.Description());
AfxMessageBox(erroMsg);
}
_variant_t vt1;
vt1=pRecordset->GetCollect("密度");
if(vt1.vt==VT_NULL)
{
//AfxMessageBox((LPCSTR)_bstr_t(vt));
AfxMessageBox("Error:NULL~~~!");
}
CString temp1;
temp1=(LPCSTR)_bstr_t(vt1);
问题是:我想用temp1变成float类型,用来计算;应该怎么改?
[解决办法]
atof函数,不过忘记能不能直接转CString了
话说那干嘛不直接将temp1定义为float
[解决办法]
_variant_t类型不是可以直接去float值的么?
vt1.dblVal啊
当然如果你表中“密度”的存储格式是字符串类型的话,还是老老实实用CString再用atof函数转吧
atof函数去查msdn
[解决办法]
这个帖子里有
[解决办法]
_tstof