2017-08-09 1 views
1

Ich habe ein JsonArray mit einem Eintrag wie: [1502054710762, -93.787] Ich verwende die QDecimal Klasse in meinem Projekt mit echten Dezimalwerten statt float oder double arbeiten. Jetzt ist mein Problem, dass der Wert in der JsonArray keine Zeichenfolge ist. Es ist eine JsonNumber als Dezimalzahl. Wenn ich versuche, den Wert durch array.at (1) .toDouble() zu lesen, erzeuge ich einen ungenauen Dezimalwert.Qt Json Dezimalwert

Interessanter Punkt: das passiert nur auf meinem Linux-Server, läuft aber gut auf meinem Notebook. - Keine Ahnung, warum ...

+0

Ich würde vorschlagen, dass Sie versuchen, _QJsonValue :: toVariant() _ und dann extrahieren Sie Ihren Wert aus dem _QVariant_ mit _QVariant :: value() _. Im Prinzip etwa so: 'QDecimal dec = array.at (1) .toVariant(). Value ()' ;. – scopchanov

Antwort

0

Sie können toDouble() nicht verwenden, um es zu entfernen, da dies die verfügbare Genauigkeit ändert. Sie müssen mit QDecimal rechnen.

+0

Ja richtig, aber wie bekomme ich den Wert aus dem JSON-Array ohne das Doppelte? –

+0

müssen Sie darauf als String zugreifen. – catbadger

+0

Aber das Format ist keine Zeichenfolge. Es ist eine Jsonnummer. Ich habe versucht, es zu lesen wie: 'QDecDouble a; a.fromString (jsonArray.at (1) .toString(). ToUtf8()); ' –