gpt4 book ai didi

c++ - QJsonDocument::toJson() 生成超大文本。有办法解决吗?

转载 作者:太空狗 更新时间:2023-10-29 23:03:02 36 4
gpt4 key购买 nike

我制作了转换 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。

不过,我认为问题出在floating point precision . QJSonDocument 尽可能准确地表示数字,但没有限制所表示的小数位数的功能,如 QString 中所示。 .

虽然不理想,但如果您真的想要以这种方式表示 0.5,您可以写一个字符串值而不是 double 值。

关于c++ - QJsonDocument::toJson() 生成超大文本。有办法解决吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26762311/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com