2017-07-05 61 views
0

Ich erhalte ein JSON Array von einem Server, der aussieht: [0.00015099, 1, -672.41163] Diese Werte sind Orderbucheinträge. Wenn ich versuche, alle Werte als doppelt zu analysieren, weicht mein Preis geringfügig vom Preis im JSON-Array ab. Für mich ist klar, dass dies wegen der Doppelwandlung passiert, aber wie kann man so verrückte Sachen programmieren? Benötigen Sie diese Werte auch für die Berechnung, vergleicht usw. Ich verwende Qt5 und C++.Qt doppelt von JSON Präzision

Irgendwelche Hinweise?

+1

'double' ist die schlechteste Wahl, um mit Geld umzugehen (es sei denn, Sie können es _double_). Verwenden Sie stattdessen feste Dezimalzahlen und bestimmte Rundungsregeln, die Buchhalter sind dankbar. – user0042

Antwort

0

Nun, du solltest einen Dezimaltyp verwenden, wenn du mit Geld umgehen willst, um auf der sicheren Seite zu sein. Leider hat Qt aus irgendeinem Grund keinen Dezimaltyp. Also, Sie können mit einigen Rundungsregeln/Konventionen enden, wenn Sie keine andere Wahl haben. Andernfalls Sie besser, um Ihre eigene Implementierung zu implementieren oder eine vorhandene Lösung wie qdecimal zu verwenden.