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

问题描述 投票:-2回答:1

我想在不影响精度的情况下将QString("3.285072743893E-04")转换为double

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

我在某个地方读过这只是值如何显示的问题。

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

c++ qt double precision qstring
1个回答
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;

在我的设置(Qt 4.7.3)是:

0.00032850727438929998173

如您所见,除最后一位数外,所有精度都保留。

© www.soinside.com 2019 - 2024. All rights reserved.