2017-08-09 68 views
1

我有一个像这样的条目的JsonArray:[1502054710762,-93.787] 我在我的项目中使用QDecimal类来处理实数十进制值而不是float或double。 现在我的问题是,JsonArray中的值不是一个字符串。它是一个JsonNumber小数。如果我尝试读取array.at(1).toDouble()的值,则会生成不准确的十进制值。Qt Json十进制值

有趣的一点:这只发生在我的Linux服务器上,但在我的笔记本上运行良好。 - 不知道为什么...

+0

我建议你尝试_QJsonValue :: toVariant()_然后使用_QVariant :: value()_从_QVariant_中提取你的值。基本上,像这样:'QDecimal dec = array.at(1).toVariant()。value ()';. – scopchanov

回答

0

你不能使用toDouble()来改变可用的精度。你将不得不用QDecimal来做你的数学计算。

+0

是的,但如何在没有双重事件的情况下从JSON数组中获取值? –

+0

您必须以字符串的形式访问它。 – catbadger

+0

但格式不是字符串。这是一个JsonNumber。我试图读取它: 'QDecDouble a; ().toString()。toUtf8());' –