int main(){
std::string text = "15555555.2587";
std::stringstream ss;
double number;
ss << text;
ss >> number;
std::cout << std::fixed << std::setw( 11 ) << std::setprecision( 6 )
<< std::setfill( '0' ) << number<<endl;
return 0;
}
上述程序的输出是15555555.0000
它会截断小数点后的值。
如何获得正确的值?
最佳答案
您的 number
值符合预期。问题是你应该通过 cout
以这种方式打印它:
std::cout << std::fixed << std::setprecision(4) << number;
输出
155555.2587
关于c++ - double to std::cout 截断数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19973042/