找不到以下问题的答案:
我是 C++ 新手,现在正在做一些测试。我正在使用 std::fixed 和 std::setprecision 函数来获得一个带有 5 个零的十进制数。这使用 cout 有效,但我不知道如何将结果分配给变量而不是使用 cout 打印它们。
//Works
int fetchJD(std::string str) {
std::cout << std::fixed << std::setprecision(0) << str;
return 0;
}
我尝试过使用 sstream 之类的方法,但是每当我尝试将结果分配给另一个字符串以便可以返回结果时,编译器就会失败。
// Not working
int fetchJD(std::string str)
{
std::stringstream ss;
string temp;
ss << std::fixed << std::setprecision(0) << str;
temp = ss.str();
return temp;
}
这导致编译器出错:
In function ‘int fetchJD(std::__cxx11::string)’:
astroapp.cpp:43:12: error: cannot convert ‘std::__cxx11::string {aka
std::__cxx11::basic_string<char>}’ to ‘int’ in return
return temp;
那么我如何从 std::fixed << std::setprecision(0) << str; 传递结果 进入另一个字符串?