2017-08-09 45 views
1

[1502054710762、-93.787] 私のプロジェクトでQDecimalクラスを使用していますが、floatまたはdoubleの代わりに実際の小数点値を使用しています。 私の問題は、JsonArrayの値が文字列ではないということです。小数点としてのJsonNumberです。 array.at(1).toDouble()の値を読み込もうとすると、不正確な10進数値が生成されます。Qt Jsonの10進数値

興味深い点:これは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; a.fromString(jsonArray.at(1).toString()。toUtf8()); ' –