急!请教高人!!用VC++6.0编对话框程序,CString转float类型的问题

我的一个编辑框控件的内容是g0g+00001391这样的字符串类型,我想提取后八位数字,变成0.1391放到另一个编辑框中,具体该如何操作?我曾尝试用atof把字符串转成... 我的一个编辑框控件的内容是g0g+00001391这样的字符串类型,我想提取后八位数字,变成0.1391放到另一个编辑框中,具体该如何操作?
我曾尝试用atof把字符串转成float型,但编译时warning 说 可能丢失数据,结果执行 果真无法显示数据了。。。
我也曾尝试用right函数提取后八位然后在第四位后插入一个小数点,结果显示成0000.1391, 这样也不是理想效果,请问高手们该怎么做才好呢?
拜谢!!!
我积分很少,之后多了 我一定会追加的!!
展开
 我来答
sgj773624926
2011-05-20 · TA获得超过185个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:88.1万
展开全部
先用right函数提取后八位,将取到的字符串转化为float型,再将其除以10000,就ok了,呵呵
追问
先谢了,不过我这个字符串表示距离,要显示成0.1391才行,单位是米,那样除以10000不行的,请问还有别的办法吗?
追答
要不就转化成double型,这样应该就不会丢失数据了……呵呵……试试吧
百度网友45ae221
2011-05-20 · 超过26用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:67.4万
展开全部
CString没用过,估计是MFC的吧。那肯定是可以转成string或者char类型的。string操作很多,绝对是可以满足你的。
用C++的sstream可以操作,或者sprintf也可以。这些都是格式化字符串的。有空看看c库或者c++标准库。
随便写个我个人比较喜欢用的格式化字符串。
eg:
char tmp[10] = { 0 };
string str("g0g+00001391");
sprintf(tmp, "0.%c%c%c%c", str[8], str[9], str[10], str[11]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式