如何将包含指数的 QString 转换为C++中的双倍?
How to convert QString containing an exponential number to double in C++?
我想在不影响精度的情况下将QString("3.285072743893E-04")
转换为double
。
当我使用QString::toDouble
时,结果是0.000328507
.
我在某处读到,这只是值如何显示的问题。
这是否意味着,将值转换为double
,实际上QString::toDouble
保留其精度,即类型double
的返回值的优先级不会受到影响?更重要的是,如果我们处理数据,我们是否需要担心其精度?
执行的输出
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
如您所见,除最后一个数字外,所有数字都保留精度。
相关文章:
- 将 Qvector<uint8_t> 转换为 QString
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- 将 hh:mm:ss.zzz 时间 QString 转换为毫秒的单行函数?
- Qt C++ 如何在 1 个命令中砍掉属于 QStringList 成员的 QString 字母
- 为什么使用 QString::right 在字符串开头省略逗号?
- Qt:更新 QString 时自动生成的代码失败
- 如何将 QString 的 QList 分配给列表视图?
- 加倍到 QString 并保存在 QJsonDocument 中
- 如何将包含指数的 QString 转换为C++中的双倍?
- 是否可以直接将QString输入(例如)googletest的ADD_FAILURE()宏?
- 如何从 QString 中包含的十六进制值中获取 ASCII 字符?
- 将 QAction 的 QString 文本作为参数传递
- 如何计算QString开头的重复字符?
- 将 nullptr QVariant 与空 QString 进行比较,在 Qt5.9 和 Qt5.12 中给出了不同的输
- 在Qt-cpp中通过像素获取QString的子字符串
- 删除unicode def后,无法将QString转换为TCHAR
- 为什么Qt QString的替换方法会改变QString?
- 如何删除Qt设计器中自定义插件的QString属性的"translatable"复选框?
- 如何将QBytearrayBCD转换为十进制QString表示