C++ C++;精确地将字符串转换为双精度

C++ C++;精确地将字符串转换为双精度,c++,string,double,atof,strtod,C++,String,Double,Atof,Strtod,我需要将字符串转换为精度高达15位的双精度字符串 我读过很多文章和类似的问题,他们建议在屏幕上打印数字时使用setprecision(15) 例如: string line = "34.9438553"; double lon1 = strtod(line.c_str(),NULL); 如果我写 cout << lon1; coutsetprecision设置打印的精度,而不是双精度打印的精度STROD将双精度读入到双精度或字符串中可用精度的最小值(本例中以字符串为界) 简而言之

我需要将字符串转换为精度高达15位的双精度字符串

我读过很多文章和类似的问题,他们建议在屏幕上打印数字时使用setprecision(15)

例如:

string line = "34.9438553";
double lon1 = strtod(line.c_str(),NULL);
如果我写

cout << lon1;

cout
setprecision
设置打印的精度,而不是双精度打印的精度
STROD
将双精度读入到双精度或字符串中可用精度的最小值(本例中以字符串为界)


简而言之,通过使用
strtod
,您已经在
lon1
中获得了字符串的全部精度

setprecision
设置打印精度,而不是双精度打印的精度
STROD
将双精度读入到双精度或字符串中可用精度的最小值(本例中以字符串为界)

简而言之,通过使用
strtod
,您已经在
lon1
中获得了字符串的全部精度

cout << setprecision(15) << lon1;