Entschuldigung, es scheint, meine ursprüngliche Erklärung war nicht klar, so habe ich die unten so gut wie möglich aktualisiert.Wie ändere ich eine Zeichenfolge in eine Dezimalstelle und setzen Sie den Wert auf 2 dp in Python (3.6)
Ich habe ein Wörterbuch aus einer Liste von Feldern und einer Datei mit fester Breite erstellt, indem ich die Datendatei aufschneide.
data_format_keys = {
("CURRENT-RATIO", 120, 127),
("ACID-TEST", 127, 134),
("NOTES", 134, 154
}
Wenn diese Ausdrucken erhalte ich die folgende ...
Current Ratio = 1234
Acid Test = 5678
Notes = These are my notes
Für die Daten in Current Ratio (1234) und Säure-Test (5678) Ich brauche die Saiten Numerik und Einsatz zu konvertieren Dezimalpunkte zur Verwendung in Berechnungen (diese Felder stammen aus einer Mainframe-Datei und müssen daher in die richtigen Formate konvertiert werden).
Die erwartete Ausgabe ist ...
Current Ratio = 12.34 #This is an integer/float
Acid Test = 5.678 #This is an integer/float
Notes = These are my notes #This is still a string
Ich habe eine Liste von Feldern erstellt, die aus der ursprünglichen Liste umgewandelt werden müssen, aber ich bin zu kämpfen mit, wie die Umwandlung
for k,v in data_format_keys.items():
if k in data_format_keys == headerdict[i[1]]:
line = line.replace(k, v)
fo.write(line)
print(headerdict)
anzuwenden
Wo Headerdict ist das erste Wörterbuch erstellt und data_format_keys ist die Liste der Felder für die Konvertierung.
Irgendwelche Gedanken? Dank
1) Es gibt eine Menge nicht verwandten Code, es ist kein minimales Beispiel. 2) Meinst du ... dividiere durch 100? –
'float (Text)/100'? – asongtoruin
Ich glaube, Division durch 100 würde funktionieren, sobald der Wert konvertiert wird. Ich wollte den Dezimalpunkt einfügen, aber das macht Sinn. Vielen Dank. – Leigh