Ergebnisse einer Formel werden ohne Nachkommastellen angegeb

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
w1ll1
User
Beiträge: 1
Registriert: Montag 19. August 2013, 14:47

Dieser "mini"-Code ist teil eines Größeren Codes, aber hier liegt das Problem...

Code: Alles auswählen

x= input ("")     # (2)
nks = int(x)
zahl=1/(10**nks)

print zahl    # (0)
Wenn die Variabele nks (Nachkommastellen) 2 ist, dann giebt der Rechner mir als Ergebnis 0. Einfach nur 0. (Eigendlich sollte 0,01 rauskommen)

Also das Problem ist, dass das Ergebnis keine Nachkommastellen Besitzt.

Also ist meine Frage, wie ich es hin bekomme, dass das Ergebnis nachkommastellen besitzt.

Danke Schonmal im Voraus.
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo w1ll1,
Du sagst ja auch explizit, dass Du nur mit ganzen Zahlen (int) rechnen willst.

Code: Alles auswählen

print 1.0/10**3
BlackJack

@w1ll1: Erstmal vorweg: Verwende `raw_input()` anstelle von `input()`. Letzteres wertet die Eingabe des Benutzers als Python-Ausdruck aus, was im schlimmsten Fall eine Sicherheitslücke ist, zumindest aber die Fehlerbehandlung schwer bis unmöglich macht.

Du hast in der Rechnung nur ganze Zahlen als Typen, darum ist auch das Ergebnis ganzzahlig. Es gibt mehrere Möglichkeiten:

a) Die Eingabe nicht in eine ganze Zahl sondern in eine Gleitkommazahl umwandeln,
b) Die 1 in der Rechnung als Gleitkommazahl angeben,
c) oder ``from __future__ import division`` als ersten Import im Modul angeben.
Antworten