我有一个像这样的条目的JsonArray:[1502054710762,-93.787] 我在我的项目中使用QDecimal类来处理实数十进制值而不是float或double。 现在我的问题是,JsonArray中的值不是一个字符串。它是一个JsonNumber小数。如果我尝试读取array.at(1).toDouble()的值,则会生成不准确的十进制值。Qt Json十进制值
有趣的一点:这只发生在我的Linux服务器上,但在我的笔记本上运行良好。 - 不知道为什么...
我有一个像这样的条目的JsonArray:[1502054710762,-93.787] 我在我的项目中使用QDecimal类来处理实数十进制值而不是float或double。 现在我的问题是,JsonArray中的值不是一个字符串。它是一个JsonNumber小数。如果我尝试读取array.at(1).toDouble()的值,则会生成不准确的十进制值。Qt Json十进制值
有趣的一点:这只发生在我的Linux服务器上,但在我的笔记本上运行良好。 - 不知道为什么...
你不能使用toDouble()来改变可用的精度。你将不得不用QDecimal来做你的数学计算。
是的,但如何在没有双重事件的情况下从JSON数组中获取值? –
您必须以字符串的形式访问它。 – catbadger
但格式不是字符串。这是一个JsonNumber。我试图读取它: 'QDecDouble a; ().toString()。toUtf8());' –
我建议你尝试_QJsonValue :: toVariant()_然后使用_QVariant :: value()_从_QVariant_中提取你的值。基本上,像这样:'QDecimal dec = array.at(1).toVariant()。value()';. –
scopchanov