Ich benutze Python für die Programmierung und dann Gurobi für die Lösung meiner Optimierungsprobleme. Als Teil meiner Codes lese ich die Daten aus einer Textdatei ("Feed2" genannt), mache dann einige Berechnungen darauf.Dezimal in Python
with open('Feed2.txt', 'r') as Fee:
for i in range(C):
Feed= Fee.readline()
for s in L11:
A[i,s]=float(Feed)
for s in L12:
A[i,s] =float(Feed)*1.28
for s in L13:
A[i,s] =float(Feed)*0.95
print A
Das Ergebnis zeigt einige der Zahlen viele Stellen nach dem Komma haben (wie 106,51209999999999 oder 1029,4144000000001), das Problem für Gurobi Kästen alle, die für das Lesen, die nicht wirklich nützlich Ziffern zu mir sind. Also, ich möchte die Anzahl der Nachkommastellen für mein gesamtes Programm auf 5 setzen, ich folgte der in https://docs.python.org/3/library/decimal.html erläuterten Methode (Codes sind unten); aber nichts ist verändert.
from decimal import *
getcontext().prec = 5
denke ich die Einstellungen in 'decimal' nur Zahlen beeinflussen erstellt mit dieses Paket, nicht normale 'float' Zahlen. Außerdem ist dies nur ein Artefakt, wie Gleitkommazahlen im Speicher dargestellt werden. Ist das wirklich ein Problem? –
Mögliches Duplikat von [Wie kann ich eine Dezimalzahl so formatieren, dass immer 2 Dezimalstellen angezeigt werden?] (Https://stackoverflow.com/questions/1995615/how-can-i-format-a-decimal-to-always-show- 2-Dezimalstellen) –
Danke ,; Das Problem ist mit Gurobi beim Lesen dieser Zahlen, um das Optimierungsproblem zu lösen.Dies erhöht die Rechenzeit, die mehr als einen Tag und die Genauigkeit beträgt, was bedeutet, dass die optimale Lösung mit Null-Lücke erreicht wird. – David