QJsonDocument::toJson()生成超大文本.有办法解决它吗
QJsonDocument::toJson() generates extra large text. Is there way to fix it?
我创建了一个类,可以将QList<qreal>
(非常大的列表)转换为JSON字符串,但它会生成一个超大的文本。
这是代码:
QJsonObject rootObject;
rootObject.insert("Test",0.05);
qDebug()<<QJsonDocument(rootObject).toJson(QJsonDocument::Compact);
我尝试过相同的代码:
QJsonObject rootObject;
rootObject.insert("Test",QString("0.05").toDouble());
qDebug()<<QJsonDocument(rootObject).toJson(QJsonDocument::Compact);
调试组总是:
{"Test":0.050000000000000003}
我想得到这样的短输出:
{"Test":0.05}
有办法修复QJsonDocument
吗?或者让一些小数计算四舍五入/限制?
在OS X上,我尝试了以下操作:-
QVariant d(0.5);
QJsonValue val = QJsonValue::fromVariant(d);
qDebug() << val.toDouble();
这打印出0.5,正如预期的那样。
然而,我认为问题在于浮点精度。QJSonDocument尽可能准确地表示数字,但没有像QString中那样限制所表示的小数位数的功能。
虽然不理想,但如果您真的想要用这种方式表示0.5,您可以写一个字符串值,而不是双精度。
相关文章:
- 运行同一解决方案的另一个项目的项目
- 文本文件中的单词链表
- 从命令行c++发送文本文件名
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- Project Euler问题4的错误解决方案
- Ardunio UNO解决了多个重叠的定时器循环
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- 我想使用 "cout" 命令慢慢打印文本,但我真的找不到任何解决方案
- 任何人都知道如何解决尝试将从MySQL数据库返回的行打印到文本文件(.txt)中的C++
- 如何解决此问题,我需要从文本文件中导出一行
- Visual Studio,在(解决方案资源管理器的)某个筛选器内的所有文件中查找/替换文本
- 解决gcc错误的方法:在模板中使用chrono_literals会中断字符串_文本
- Python Pandas 的性能与文本 CSV 数据导入C++解决方案
- QJsonDocument::toJson()生成超大文本.有办法解决它吗
- 无法读取 c++ 中的 txt 文件.我不断收到我的输入文件失败文本.谁能帮我弄清楚要解决什么