如果我有一个等于"123.546123"
的双字符串并将其转换为atof
的双精度数字,我只得到123.546
。我该怎么做才能解决这个问题?
这是我的代码:
#include <iostream>
int main(){
std::string a = "123.546123";
double b = atof(a.c_str());
std::cout << a << std::endl;
std::cout << b << std::endl;
return EXIT_SUCCESS;
}
答案 0 :(得分:7)
std::cout
默认打印精度为6的浮点值。要提高这种精确度,请使用<iomanip>
中的std::setprecision
,例如:
std::cout << std::setprecision(9) << b << std::endl;