读书人

sscanf,为什么从char*到double型转换的

发布时间: 2012-02-29 16:44:10 作者: rapoo

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,可以改动,只是输出时精度控制

读书人网 >C++

热点推荐