C++ MFC CString怎么转换成Double
答案:6 悬赏:10
解决时间 2021-01-28 17:44
- 提问者网友:风月客
- 2021-01-27 20:21
C++ MFC CString怎么转换成Double
最佳答案
- 二级知识专家网友:不想翻身的咸鱼
- 2021-01-27 21:53
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());
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());
全部回答
- 1楼网友:孤独的牧羊人
- 2021-01-28 01:30
检查一下有没有
#include
和
#include
这两个头文件。
#include
和
#include
这两个头文件。
- 2楼网友:十年萤火照君眠
- 2021-01-28 00:14
double _wtof(
const wchar_t *str
);
用这个试试。你用的不是vc6.0吧?
const wchar_t *str
);
用这个试试。你用的不是vc6.0吧?
- 3楼网友:深街酒徒
- 2021-01-27 22:43
例如CString Temp = _T("1.234");
如何转换成浮点1.234
#include
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;
}
如何转换成浮点1.234
#include
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;
}
- 4楼网友:猎心人
- 2021-01-27 22:28
在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()
%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()
- 5楼网友:神也偏爱
- 2021-01-27 22:10
1:可以为控件关联一个double类型变量,然后updatedata(false
)2;或者楼上函数double d=_wtof(a.GetBuffer(0))
)2;或者楼上函数double d=_wtof(a.GetBuffer(0))
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯