Ich schreibe ein Programm, für das es wichtig ist, Werte in einer Datumsreihe zu vergleichen und zu bewerten. Allerdings habe ich Probleme mit der Ungenauigkeit der SchwimmerWie Ungenauigkeit der Fließkommazahl in Python abgeschnitten
Ich ziehe diese Daten von meinem SQL-Server, die beide 1,6 sein sollen. Sie erweisen sich jedoch als etwas anders (siehe unten). Wenn ich also Dataframe.rank() verwende, behandelt es diese beiden Daten nicht als den gleichen Rang, sondern rangiert 01/02/2004 über 02/01/2005.
Hat jemand eine Idee, wie man damit umgeht, damit diese beiden auf dem gleichen Rang landen?
modelInputData.loc['01/02/2004',('Level','inflationCore','EUR')]
Out[126]: 1.6000000000000003
modelInputData.loc['02/01/2005',('Level','inflationCore','EUR')]
Out[127]: 1.6000000000000001
Python-Dokumentation zu Problemen und Einschränkungen von Gleitkommazahlen: https://docs.python.org/2/tutorial/floatingpoint.html. –
Sounds wie Floats sind hier nicht die richtige Lösung. Wenn Berechnungen eine willkürliche Genauigkeit haben müssen, verwenden Sie Dezimalzahlen, keine Gleitkommazahlen: https://docs.python.org/2/library/decimal.html#module-decimal –
Ja, ich werde wahrscheinlich am Ende damit fertig werden. Vielen Dank! – jjvandermade