Ganzzahl in Gleitkomma umwandeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
frannek
User
Beiträge: 33
Registriert: Dienstag 28. Januar 2014, 12:17

Hallo Zusammen,

ich möchte eine Ganzzahl (positiv/negativ möglich) in eine Gleitkommazahl umwandeln.

Beispiel:

Gelieferter Wert: 1000 - Bedeutet: 10.00
Gelieferter Wert: -123 - bedeutet: -1.23

Die letzten beiden Zahlen sollen also immer hinter dem Punkt sein (Punkt deswegen, weil es in eine CSV Datei geschrieben wird).
Ich hab die ganze Zeit mit der formatierten Ausgabe gespielt aber leider nicht hinbekommen (Sofern es damit gehen würde )
http://www.python-kurs.eu/python3_forma ... usgabe.php


Kann mir hier vllt jemand weiter helfen?
Hier die Stelle in meinem Code:

Code: Alles auswählen

myfile.write("%2.2f," % (temperatur_list[count]))
Wie gesagt, die Variable liefert immer Ganzzahlen und die letzten beiden Zahlen sind immer Nachkommastellen.


besten Dank


Franz


Nachtrag:
Ich hatte natürlich auch schon versucht durch 100 zu teilen... jedoch wird dann das ganze gerundet.

Code: Alles auswählen

myfile.write("%3.2f," % (temperatur_list[count]/100))
Sirius3
User
Beiträge: 18334
Registriert: Sonntag 21. Oktober 2012, 17:20

@frannek: Du solltest gleich beim Einlesen der Temperaturen die Zahl ins richtige Format umwandeln:

Code: Alles auswählen

temperatur * 0.01
PS: Variabelnamen sollte man nicht nach ihrem Typ benennen, sondern nach dem Inhalt, eine Liste mit Temperaturwerten könnte man z.B. "temperaturen" oder besser auf englisch "temperatures" nennen. Dann ist gleich klar, da es Mehrzahl ist, dass es irgendetwas List-ähnliches sein wird. csv-Dateien schreibt man am besten mit Hilfe des csv-Modules.
frannek
User
Beiträge: 33
Registriert: Dienstag 28. Januar 2014, 12:17

Hallo Sirius... Vielen Dank für die Info. Natürlich funktioniert das ganze jetzt.
Eine Frage habe ich jedoch: Wieso kann ich die zahl durch 100 teilen, bekomme aber dennoch eine Ganzzahl? Ich hatte es vernommen, dass ich 123 /100 eben 1.23 ergibt... jedoch 123 // 100 eben 1. Hab ich da was falsch verstanden?

CSV Modul.. Guter Hinweis. Da werde ich jetzt gleich mal nachsehen. Besten Dank!
Sirius3
User
Beiträge: 18334
Registriert: Sonntag 21. Oktober 2012, 17:20

@frannek: das Verhalten von / hat sich mit Python 3 geändert. Willst Du das gleiche Verhalten auch für Python 2 haben, muß am Anfang Deines Programms

Code: Alles auswählen

from __future__ import division
stehen, damit 123 / 100 = 1.23 ist.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Sirius3 hat geschrieben:@frannek: das Verhalten von / hat sich mit Python 3 geändert. Willst Du das gleiche Verhalten auch für Python 2 haben, muß am Anfang Deines Programms

Code: Alles auswählen

from __future__ import division
stehen, damit 123 / 100 = 1.23 ist.
Oder einfach: `123 / 100.0`, wenn ein Teil der Division ein Float ist, ist das Ergebnis auch ein Float (gilt für alle Rechenoperationen).
the more they change the more they stay the same
frannek
User
Beiträge: 33
Registriert: Dienstag 28. Januar 2014, 12:17

Vielen Dank für diese Information. Hat mir sehr geholfen!
daniel2807
User
Beiträge: 4
Registriert: Montag 11. April 2016, 15:43

Hallo,
ich brauche Hilfe bei der Ausgabe aneinandergehängter Zeichenketten. Mein Programm zur Binärdarstellung sieht wie folgt aus:

#Binärdarstellung
z=int(input('Dezimalzahl: '))
while z!=0:
b=z%2
z=z//2
print(b)

Nun möchte ich gerne die Zahlen der Variablen b (also alle berechneten) ausgeben, sodass am Ende für z.B. 4 statt
0
0
1

1 0 0
da steht. Würde mich freuen, wenn mir jemand schnellstmöglich helfen kann.

Gruß,
Daniel2807
Sirius3
User
Beiträge: 18334
Registriert: Sonntag 21. Oktober 2012, 17:20

@daniel2807: es ist nicht nett, den Thread eines anderen zu kapern. Mach bitte für eine neue Frage einen neuen Thread auf.

Zur Frage: Du mußt statt die Zahlen auszugeben sie in eine Zeichenkette umwandeln und passend zusammensetzen.
daniel2807
User
Beiträge: 4
Registriert: Montag 11. April 2016, 15:43

Entschuldigung, aber das Problem ist, dass ich nicht weiß, wie man eine neue Frage erstellt?!
Kannst du mir die Antwort in meinem python programm bitte einfach hinzufügen?
Gruß,
Daniel
Sirius3
User
Beiträge: 18334
Registriert: Sonntag 21. Oktober 2012, 17:20

@daniel2807: man geht von der Hauptseite ins passende Unterforum und drückt den nicht ganz unauffälligen Knopf "neues Thema" ganz oben.

Die Antwort habe ich Dir schon gegeben. Da es Deine eigene Aufgabe ist, solltest Du wieder ein bißchen Eigeninitiative zeigen.
Antworten