C++ MFC CString怎么转换成Double

C++ MFC CString怎么转换成Double 20标签: c++, mfc, cstring 要用C++ MFC做个计算器CString转换成Double那里除了问题通过 double d=atof((LPCSTR)a)总有问题怎么解决?

1、打开编写C语言的软件codeblocks。

2、创建一个编写C语言的文件。

3、接下来开始编写程序,首先是准备转换中需要用到的变量和常量

4、接着是使用clrscr函数限定开始转换,并且给value赋值为自己想要转换的double型数据。

5、再然后就是使用ecvt函数开始进行转换,并且将转换的结果付给字符数组string。

6、接着就是使用printf函数输出用于接收value值的字符串string。

7、最后可以在控制台上看到输出的结果,正式value的值,不过这个值编程字符串格式了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-06-18
在MFC程序中,可以使用Format方法方便的实现int、float和double等数字类型转换为CString字符串。以下是CString的Format支持的格式说明:
%c 单个字符
%d 十进制整数(int)
%ld 十进制整数(long)
%f 十进制浮点数(float)
%lf 十进制浮点数(double)
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
1、int转换为CString

CString str;
int number=15;
//str="15"
str.Format(_T("%d"),number);
//str=" 15"(前面有两个空格;4表示将占用4位,如果数字超过4位将输出所有数字,不会截断)
str.Format(_T("%4d"),number);
//str="0015"(.4表示将占用4位,如果数字超过4位将输出所有数字,不会截断)
str.Format(_T("%.4d"),number);
long转换为CString的方法与上面相似,只需要把%d改为%ld就可以了。
2、double转换为CString
CString str;
double num=1.46;
//str="1.46"
str.Format(_T("%lf"),num);
//str="1.5"(.1表示小数点后留1位,小数点后超过1位则四舍五入)
str.Format(_T("%.1lf"),num);
//str="1.4600"
str.Format(_T("%.4f"),num);
//str=" 1.4600"(前面有1个空格)
str.Format(_T("%7.4f"),num);
float转换为CString的方法也同上面相似,将lf%改为f%就可以了。
3、将十进制数转换为八进制
CString str;
int num=255;
//str="377"
str.Format(_T("%o"),num);
//str="00000377"
str.Format(_T("%.8o"),num);

2.CString转化为double型
atof()
第2个回答  推荐于2017-06-18
1、首先要确定你的工程字符集用的是多字节而不是unicode才能用下面的方法, 因为vs2008/2010默认使用的是unicode编码. 修改方式为: 在解决方案窗口右键工程名-->属性->General项(我用的是英文的)-->字符集, 选择多字节那个就行了

2、例程:
CString str;
转成int: ;int a = atoi(str.GetBuffer());
转成double: double b = atof(str.GetBuffer());
// 如果坚持要用unicode的话, 就用下面两个函数:
转成int: ;int a = _wtoi(str.GetBuffer());
转成double: double b = _wtof(str.GetBuffer());本回答被网友采纳
第3个回答  2012-02-06
1:可以为控件关联一个double类型变量,然后updatedata(false
)2;或者楼上函数double d=_wtof(a.GetBuffer(0))本回答被提问者采纳
第4个回答  2012-02-08
例如CString Temp = _T("1.234");
如何转换成浮点1.234

#include<stdio.h>
int main()
{
float p;
int a=1,n;

while(n<=70)
{
a=a*(365-n+1);
n++;
}
p=a/365;
for(int i=1;i<=70;i++)
{
printf("p=%f\n",p);
}
return 0;
}

MFC中如何吧CString类型转换为double或int型??
修改方式为: 在解决方案窗口右键工程名-->属性->General项(我用的是英文的)-->字符集, 选择多字节那个就行了。1、转成int:int a = atoi(str.GetBuffer());2、转成double:double b = atof(str.GetBuffer())。CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MF...

怎样吧一个CString 转化为 double
CString s="123456.789";double d = atof(s);double转化字符串:double d = 123456.789;CString s;方法一:s.Format("%f",d);方法二:s = ftoa(d);

c++里把string转化为double,怎么弄
double ds=todouble(s);cout<<ds<<endl;return 0;todouble()是实现功能的函数。

C++中如何把string转成CString?
先将string类型变量转换为const char*类型,然后再直接赋值就可以了。例如:CString cstr;sring str = “asdasd”;cstr = str.c_str();

请问,C++如何对CString类型的数据转换为小数。
double: 转换后的双精度浮点数。备注:该函数的头文件是"stdlib.h"5、strtol 功 能:将字符串转换为长整形值,并报告不能被转换的所有剩余数字 用 法:long int strtol(const char *nptr,char **endptr,int base);详细解释:这个函数会将参数nptr字符串根据参数base来转换成长整型数。参数base范围...

C++ 如何将CString 类型转换为 int 例如: CString valType = "23...
假设有一个CString的类,例如 CString valType = _T("23");你要将其转换为int类型的数,只需如下操作:int iType = 0;iType = atoi(valType);这样,iType 就等于23了。方法正确,忘采纳

CString类型转换
cppCString graycat = CString(_T("Gray")) + _T("Cat");3. char* 转换: 将 char* 转换为 CString,例如:cppchar* p = "This is a test";CString s(p);4. 构造函数使用: 不推荐直接使用字符串字面量构造 CString,尽管可能编译通过,但可能在 Unicode 环境下引发问题:cppCString s =...

MFC 如何实现CString转DWORD!!!SOSOSOSOSOS!!!
CString str;DWORD dw;dw=(DWORD)atoi(str)或dw=(DWORD)atol(str)

C++中_atold库函数问题
不知道你是不是想要这样的程序,能将“123,456,789.99”字符串转换成123456789.99的double类型,至于long doubleC++中没有从string转换long double的函数,atof可以从cstr转换成double:include <iostream> include <cstring> include <string> include <iomanip> using namespace std;int main (){ doubl...

【c++】在VC++里double和CString怎么进行连接啊~~~
CString有个Formate()函数像printf那样用的。CString str.formate("X1=%lf,X2=%lf",x1,x2);m_1.SetWindowText(str);应该就可以了

相似回答