0
私はx座標とy座標のデータファイルを持っています。それらをQtの2つのダブルベクトルに読み込もうとしています。私の問題は私の元の値は、私のコードはQtで精度を失うことなくテキストファイルから値を読み取る
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);
}
}
ある
35.659569 139.723370
35.659546 139.723194
35.659527 139.723051
35.659523 139.722909
35.659383 139.722946
のように私のデータファイルが見える6に上がるにもかかわらず、値がカットオフまたは3つの小数点以下四捨五入されていることです精度を損なうことなく値を読み取るにはどうすればよいですか?
:で
:この行を置き換え
qSetRealNumberPrecision()
を使用しての精度を設定してみてください。また、小数部と2進小数部の違いにより、ある種のエラーは回避できないことに注意してください。精度の低下を避けるために、文字列として読み込んで格納します。 – MikeCAT
あなたは彼らが切り離されていると確信しているのですか、まさに丸みを帯びて表示されていますか? qDebug()、qInfo()は、印刷方法を制御する書式設定フラグを持つことができます。ブレークポイントを入れ、 'a'と' b'のスタックの内容を見直してください。私はあなたがあなたの完全な価値観を見ると信じています。 – Freddy