首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
VC/MFC
基础类
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
CString 转 为 double 问题
[已结贴,结贴人:hmis168]
加为好友
发送私信
在线聊天
hmis168
等级:
可用分等级:
贫农
总技术分:
8
总技术分排名:
234890
揭贴率:
80.49%
发表于:
2008-08-21 21:23:13
楼主
CString 转 为 double 问题
CString strTemp ="2224.343" ;
double dje = atof((char *)(LPCTSTR)strTemp) ;
为什么 dje 总是2.000
为什么 2005 VC double dje = atof(strTemp) ; 这样写不行呢?
问题点数:
20
回复次数:
5
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
akirya
坏[其实偶不是什么所谓的坏人]
等级:
可用分等级:
富农
总技术分:
94052
总技术分排名:
57
6
发表于:
2008-08-21 21:29:03
1
楼 得分:
5
atof改为_ttof
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
tiankongzhiying
天涯
等级:
可用分等级:
贫农
总技术分:
130
总技术分排名:
78514
发表于:
2008-08-21 22:03:09
2
楼 得分:
5
先用atof函数将数据转换成float类型,然后在将其转换成double
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
greatws
研究DSing...
等级:
可用分等级:
富农
总技术分:
11075
总技术分排名:
1936
发表于:
2008-08-21 23:18:18
3
楼 得分:
5
首先先确认工程是不是宽字符
double dje;
CString strTemp = _T("2224.343");
_stscanf(strTemp, _T("%f"), &dje);
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Devang
Devang
等级:
可用分等级:
富农
总技术分:
2214
总技术分排名:
9637
发表于:
2008-08-21 23:26:24
4
楼 得分:
0
这里只有VC6,double dje = atof(strTemp) ; dje = atof((char *)(LPCTSTR)strTemp) ; 都没问题
试试这个: dje=atof(strTemp.GetBuffer(0));//CString to double
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jimmytom
Jimmy Tom
等级:
可用分等级:
长工
总技术分:
315
总技术分排名:
47757
发表于:
2008-08-22 00:13:19
5
楼 得分:
5
#include <iostream>
#include "afx.h"
int main()
{
CString strTemp = "2224.343";
double dje = atof((char *)(LPCTSTR)strTemp);
std::cout < < dje;
std::cin.get();
return 0;
}
用你的程序编译,输出均没有错误,输出2224.34精度有点丢失。不过没有错误。
atof接受const char*类型的变量,不用再两次强制转换,第一次弄成const的,第二次再弄成char *的,没必要吧。
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友