在mfc中将CString转换为float
Convert CString to float in mfc
如何将CString变量转换为浮点数?(我使用visuall c++ 6.0和MFC)
我试图使用一个编辑框来返回一个值,我把它放入一个浮点数组。我使用GetWindowText方法来获取值,它返回一个CString。所以我需要把它转换成浮点数。(或者我只是用完全错误的方式做事?)。
我认为在MFC中已经有这样做的方法。(已经使用Format方法转换为CString,在编辑框中显示数组中的值)
谢谢。
你可以直接做
CString pi = "3.14";
return atof(pi);
编辑
也可以使用这个函数:
CString pi = "3.14";
return _ttof(pi);
读取字符串值并将其解析/转换为float,可以在有错误时定位错误。你所需要的只是一个C运行时函数的帮助:strtod()或atof()。
我更喜欢strtod作为第二个参数,返回指向解析结束的字符串的指针:
CString str;
m_edtMyEditBox.GetWindowText(str);
char *pEnd;
double dValue = strtod(str.GetBuffer(str.GetLength()), &pEnd);
if (*pEnd != ' ')
{
// Error in parsing
}
str.ReleaseBuffer();
相关文章:
- 没有合适的构造函数可以从"float"转换为"_D3DCOLORVALUE"
- 错误:无法将"float*"转换为"float"
- 有没有一种优雅的方法可以将矢量<复杂<float>>转换为矢量<short>?
- MBED RTOS将Float转换为字符串/字符阵列
- 错误:无法将参数"1"的"float*"转换为"float"
- 有没有快速的方法可以将std::vector<std::vector<float>>转换为std::vector<float2>?
- 将 const float* 转换为 std::array<float, ...>
- 当float转换为int时,此代码中是如何/为什么进行缩小的
- Arduino 无法在初始化时将'float'转换为'const char*'
- C++11自动.从float转换为long
- g++ 在不使用 -Wconvert 的情况下将 double/float 转换为无符号整数时发出警告
- 从 std::vector<std::vector<float>> 转换为 float**
- 在opencv中将垫子转换为矢量<float>和矢量<float>转换为垫子
- 代码一直说:“[错误]无法将参数'1'的'float*'转换为'float'到'void test(flo
- 从'float'转换为'LONG'需要缩小转换范围
- 错误:初始化时无法将'float*'转换为"qreal* {aka double*}"
- Int16_t到float转换的奇怪
- 使用JNI将float*转换为jfloatArray
- 将google::p rotobuf::RepeatedField<float>转换为浮动
- 将float转换为int时的奇怪行为