_variant_t 數(shù)據(jù)類型與其他數(shù)據(jù)類型的轉(zhuǎn)換比較麻煩,以前用的是從網(wǎng)上找來的一段代碼,存在一些問題,后果很嚴重,害我以為出現(xiàn)靈異事件了。
原方法如下:
case?VT_DECIMAL:?
?????????????{
??????????????????double?val?=?var.decVal.Lo32;
?????????????????????????????????????
????????????????????val?*=?(var.decVal.sign?==?128)??-1?:?1;
????????????????????val?/=?pow(10,?var.decVal.scale);?
????????????????????CString?strFormat;
????????????????????strFormat.Format("%d",?var.decVal.scale);
????????????????????strFormat?=?"%."+strFormat+"f";
?????????????????????????????????????????strValue.Format(strFormat,?val);
?????????????????????????????????break;
?????????????}
轉(zhuǎn)過多次沒出什么事就認為這段代碼可以用。結(jié)果問題就出在這段代碼。


/**////問題所在
double?val?=?var.decVal.Lo32;

//應(yīng)改為?
?double?val=var.decVal.Lo64;當數(shù)據(jù)較大時數(shù)據(jù)被截斷,靈異事件就出現(xiàn)了。