- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 QJsonObject
中存储一个 double
值并稍后检索相同的值。但是,检索到的值精度较低。
这是一个例子:
qDebug() << QJsonObject({{"number", 49.195502187}}).value("number").toDouble();
输出 49.1955
,而不是 49.195502187
。
我检查了Why does qjsonvalue todouble conversion cause data loss? ,但它是关于数据类型之间的转换,与我的具体情况无关。
如何取回正确的值?
最佳答案
只有在显示值时才会出现精度损失。在内部存储正确的值。为确保它是这样的,将代码分解如下:
QJsonObject json({{"number", 49.195502187}});
double value = json.value("number").toDouble();
qDebug() << value;
然后使用断点设置为 qDebug() << value;
的调试器:
我建议您使用 QString::number
为了设置显示值所需的精度,例如:
qDebug() << QString::number(value, 'g', 14);
这将为您提供存储在 JSON 中的值:
49.195502187
关于c++ - 为什么 QJsonValue::toDouble 中有精度损失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52607931/
当我向时间 API 发出请求以获取莫斯科时间时,变量中的 int 为空。这是代码: QNetworkReply* reply = manager->get(QNetworkRequest(QUrl("
在 Qt 的 JSON 实现中,在 QJsonObject 类中,有两个运算符的实现(文档 here ): QJsonValue QJsonObject::operator[](const QStri
我有一个 QAbstractListModel显示 QJsonArray , 与 drag & drop implementation : class NoteListModel : public Q
如何将QVariant转换为QJsonValue?我知道 QVariant 提供了 toJsonValue 函数,但它没有按预期执行。 例如: qDebug()<
我想在 QJsonObject 中存储一个 double 值并稍后检索相同的值。但是,检索到的值精度较低。 这是一个例子: qDebug() << QJsonObject({{"number", 49
我正在学习 C++ 并尝试制作一些东西。但是我遇到了一个错误,我不确定发生了什么。我正在尝试创建一个可以接受数组并将其转换为 JSON 的简单事物。但是我遇到了一个错误 'QJsonValue::QJ
我在 QJsonValue 中有一个大(兆字节)字符串,我需要将其转换为 QByteArray,因为我正在使用 作为数据发送该字符串QNetworkRequest. 目前我正在这样做: myQJson
我正在尝试安装 PyQt5,但出现此错误,我阅读了一些与此错误相关的其他帖子,但都没有帮助。 /home/pathname/Downloads/PyQt-gpl-5.5.1/QtCore/sipQtC
我是一名优秀的程序员,十分优秀!