或者我需要使用哪种类型? 我有字符串,我尝试将其转换为双
NFR_File.ReadString(sVal); // sVal = " 0,00003"
dbl = _wtof(sVal);
并获得:
3.0000000000000001e-05
我需要0,00003,因为那时我应该把它写成文件" 0,00003"但不是3e-05。
如果数字大于0,000,则一切正常。
显示:
sOutput.Format(_T("%9g"),dbl);
NFP1_File.WriteString(sOutput);
我需要它而没有尾随零并且还保留9位数字(带空格)
答案 0 :(得分:1)
使用printf编写时,可以使用。[decimals] lf指定所需的有效位数。
例如,在您的情况下,您希望以5位小数打印,因此您应该使用
printf("%.5f", yourNumber);
答案 1 :(得分:0)
如果你可以使用C ++ 11
尝试使用http://en.cppreference.com/w/cpp/string/basic_string/to_string
std::string to_string( double value );
答案 2 :(得分:0)
调用此成员函数将格式化数据写入CString,其方式与sprintf将数据格式化为C样式字符数组的方式相同。
与c sprintf
格式相同。您可以查看其他答案的格式用法。