ich derzeit Python 2.7.5 auf Aix 5.1 mit cx_Oracle
Version 5.2 bis zu Oracle verbinden bin mit 12ccx_Oracle gibt falschen Teilungsausgang
Ich versuche, eine SQL-Abfrage auszuführen, und legt seine Ausgabe in eine CSV-Datei mit dem Modul csv
. Die Abfrage Ich betreibe ist:
Select 1.563/100, 0.38/100 from dual; - - simplified query
jedoch die Ausgabe in Datei ist:
0.015629999999999998,0.0038
Als ich es
0,01563 sein erwarten, 0.0038
Nach ein paar Nachforschungen glaube ich, das liegt daran, dass Fließkommazahlen in binärer Basis 2 dargestellt werden.
Aber ich weiß nicht, wie das zu lösen?
Ich habe auch versucht
from __future__ import division
Aber es half nicht.
Wohlgemerkt, die Ausgabe von 'round' ist eine andere binäre Gleitkommazahl, die auch ungenau ist, so dass die sichere Methode, um Zeichenfolge konvertiert (mit der gewünschten Genauigkeit) mit Funktionen wie 'sprintf' oder' to_char' abhängig von der jeweiligen Sprache. –