std::istringstream将字符串转换为long double时会丢失精度.我可以使用类似的东西std::fixed还是std::setprecision()?
我正在使用c ++ 11并以QNX平台为目标.
#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
int main(){
long double convertedNumber;
std::string numberString ("5.94865747678615882510631e+4931");
//From string to long double
std::istringstream iss(numberString);
iss >> convertedNumber;
std::cout<< std::setprecision(30) << numberString << "\n";
std::cout<< std::setprecision(30) << convertedNumber << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是
5.94865747678615882510631e+4931
5.9486574767861588254e+4931
Run Code Online (Sandbox Code Playgroud)