QString使用toDoouble转化double类型,其实精度没有丢失,只是我们使用qDebug打印时出了问题。qDebug它对于double类型只显示6位数字。
如果想要打印所以数字,方法如下:
QString val = 123.456789;
qDebug()<<qSetRealNumberPrecision(10)<<val.toDouble();
且double转QString精度丢失解决方法:
double num = 123.0456789;
QString val = QString::number(num,'f',8);