一个常见的问题,可能是我在这一点上错了,但谷歌上的最后两个小时没有给我任何答案, 问题是如何在不使用 c++ 中的 std: 库的情况下将 CString 转换为 float 。
我尝试使用 wcstod() 函数,但是这个函数的行为非常不同。 请找到以下代码,
CString Tempconvert = "32.001";
double TempConvertedValue = wcstod(Tempconvert,NULL);
所以,最后 TempConvertedValue 的值应该是 32.001。但我得到 TempConvertedValue = 32.000999999999998 请给我任何转换的帮助 字符串“32.001”仅 float 32.001。不使用 std: 库。
最佳答案
您看到的是浮点内部表示的示例。你可以看看here查看 double 如何存储在内存中。另见 this question了解为什么调试器会向您显示此值。
使用这种存储格式,不可能精确地表示十进制数。这就是货币计算通常使用自定义或编程语言的一部分的特殊小数类型的原因。
关于c++ - CString 到 Float 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20996130/