【发布时间】:2013-07-10 20:25:02
【问题描述】:
伙计们!我一直在努力解决这个问题,但到目前为止我还没有找到任何解决方案。
在下面的代码中,我用数字初始化了一个字符串。然后我使用 std::istringstream 将测试字符串内容加载到双精度中。然后我计算出这两个变量。
#include <string>
#include <sstream>
#include <iostream>
std::istringstream instr;
void main()
{
using std::cout;
using std::endl;
using std::string;
string test = "888.4834966";
instr.str(test);
double number;
instr >> number;
cout << "String test:\t" << test << endl;
cout << "Double number:\t" << number << endl << endl;
system("pause");
}
当我运行 .exe 时,它看起来像这样:
字符串测试:888.4834966
双号 888.483
按任意键继续 。 . .
字符串有更多位数,看起来 std::istringstream 仅加载了 10 个中的 6 个。如何将所有字符串加载到 double 变量中?
【问题讨论】:
-
在
instr.str(test);之前尝试instr.precision(8)
标签: c++ istringstream sstream