sscanf,为什么从char*到double型转换的精度丢失解决方案
sscanf,为什么从char*到double型转换的精度丢失
double ulvalue;
sscanf(m_LONGITUDE.c_str(), "%lf ", &ulValue);
cout < <ulValue;
m_LONGITUDE.c_str()=117。693607
为什么得出来 ulvalue是117。6941呢?
------解决方案--------------------
%x.ylf,加精度控制啊。基本知识啦。默认精度是6位吧。
------解决方案--------------------
100位就自己实现吧,高精度库外面也有写好的~
atof已经很好了可以精确到16位
只要自行改变
printf( "%4.16lf ",k);//精度控制
^
|
这里,atof最大支持精度是16,可以改动,只是输出时精度控制
double ulvalue;
sscanf(m_LONGITUDE.c_str(), "%lf ", &ulValue);
cout < <ulValue;
m_LONGITUDE.c_str()=117。693607
为什么得出来 ulvalue是117。6941呢?
------解决方案--------------------
%x.ylf,加精度控制啊。基本知识啦。默认精度是6位吧。
------解决方案--------------------
100位就自己实现吧,高精度库外面也有写好的~
atof已经很好了可以精确到16位
只要自行改变
printf( "%4.16lf ",k);//精度控制
^
|
这里,atof最大支持精度是16,可以改动,只是输出时精度控制