我有一个x和y坐标的数据文件,并且试图将它们读入Qt中的两个双矢量中。我的问题是,即使我的原始值上升到6,这些值也会被截断或四舍五入到小数点后3位。
35.659569 139.723370
35.659546 139.723194
35.659527 139.723051
35.659523 139.722909
35.659383 139.722946
我的代码是
QVector<double> v, v2;
QFile textFile (":/new/files/02262017newdata.txt");
if(textFile.open(QIODevice::ReadOnly))
{
qInfo() << "opened file successfully";
double a, b;
QTextStream textStream (&textFile);
while (!textStream.atEnd()) {
QString line = textFile.readLine();
QStringList list = line.split(" ");
if(list.size() == 2){
a = list.at(0).toDouble();
b = list.at(1).toDouble();
}
qInfo() << "a and b after using split is" << a <<" "<< b;
v.append(a);
v2.append(b);
}
}
如何在不损失精度的情况下读取值?
最佳答案
您不会失去精度。问题出在qInfo()
中。尝试使用qInfo()
在qSetRealNumberPrecision()
中设置精度
替换此行:
qInfo() << "a and b after using split is" << a <<" "<< b;
与:
qInfo() << "a and b after using split is"<< qSetRealNumberPrecision(8) << a <<" "<< b;