如何在C ++中将包含指数的QString转换为double?

时间:2018-09-15 19:09:00

标签: c++ qt double precision qstring

我想将QString("3.285072743893E-04")转换为double,而又不影响精度。

当我使用QString::toDouble时,结果是0.000328507

我在某处读到它只是显示值的方式。

这是否意味着将值转换为doubleQString::toDouble实际上会保留其精度,即不损害类型为double的返回值的确定性?更重要的是,如果我们处理数据,是否需要担心其准确性?

1 个答案:

答案 0 :(得分:3)

执行的输出

SALESREPORT$ProductCOST[ROW_SALESREPORT]

在我的设置(Qt 4.7.3)上是:

QString s1 = "3.285072743893E-04";
double num = s1.toDouble(NULL);
QString s2 = QString::number(num, 'g', 20);
std::cout << s2.toUtf8().constData() << std::endl;

如您所见,除最后一位数字外,其他所有数字均保留精度。