最近在开发GPS,模块的协议采用NMEA-0183,其输出的坐标是ddmm.mmmmm格式(度分),需要转换成百度谷歌支持的dd.ddddd格式。
则转换格式如下:
转换后的精度 = dd+(mm.mmmmm/60)
我的坐标数据来自与串口,也就是我需要进行QSring转double。一开始使用 .toDouble() 时,有精度丢失的问题,有效数字只有6位,最后百度谷歌一番找到了解决方法, 使用 qSetRealNumberPrecision(int) 其中的参数可以控制有效数字。
demo:
double d = rx.cap(2).toDouble();
qDebug()<<qSetRealNumberPrecision(10)<<d;
来源:http://blog.sina.com.cn/s/blog_6b2252130102wc0h.html
http://blog.csdn.net/xiaobai_2511/article/details/51832885