0
我有一個x和y座標的數據文件,我試圖將它們讀入Qt中的兩個雙向量。我的問題是,價值被切斷或後3位小數四捨五入,即使我的原始值上升到6我的數據文件看起來像從文本文件中讀取值而不會損失Qt中的精度
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);
}
}
我如何讀取數值而不會失去精度?
它似乎不讀,但打印問題。還要注意,由於小數和二進制分數的差異,某些錯誤是不可避免的。閱讀並存儲爲字符串以避免丟失精度。 – MikeCAT
你確定他們正在被切斷,還是隻是被顯示爲圓形? qDebug(),qInfo()可以使用格式化標誌來控制它們的打印方式。設置一箇中斷點,並查看堆棧的內容「a」和「b」。我相信你會看到你的全部價值。 – Freddy