Probably your problem is how you output these values.
QString s("9338.712001"); bool ok = false; double a = 9338.712001; double b = s.toDouble(&ok); double c = 1/3.0; qDebug() << "a: " << a; qdebug() << "b: " << b; qDebug() << "a: " << QString("%1").arg(a, 0, 'g', 13) qDebug() << "b: " << QString("%1").arg(b, 0, 'e', 13); qDebug() << "c: " << QString("%1").arg(c, 0, 'g', 30);
result:
a: 9338.71 b: 9338.71 a: "9338.712001" b: "9.3387120010000e+03" c: "0.333333333333333314829616256247"
But in any case, maybe now is a good moment to read this: What every computer scientist needs to know about floating point arithmetic
source share