毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

CString转换成float类型数据失真怎么办

更新时间:2014-1-24:  来源:毕业论文

str = _T("362.15");
float temp1 =  _tstof(str);
结果temp1 = 362.14999

这个要怎么解决啊,网上找了好几种方法都没解决,

CString str = _T("362.15");
int n1=str.Find(L".");
int n2=str.GetLength()-n1-1;
str=str.Left(n1)+str.Mid(n1+1);
float temp1 =  _tstof(str);
temp1=temp1/pow(10.0,n2);

我以为上面这种笨方法可以的,结果36215/100.0,一样变为了362.14999。看来无解了。用double也不行。
float f=362.15;
直接赋值后,你调试发现f的值也是362.14999。float里面根本就无法表达362.15这个数值。 我找到解决方法了,笨笨的先把CString浮点型字符串转换成整形来做,不然肯定会失真的。虽然比较麻烦,但确实没有其他的方法了。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。