Seite 1 von 1

Ergebnisse einer Formel werden ohne Nachkommastellen angegeb

Verfasst: Montag 19. August 2013, 14:50
von w1ll1
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.

Re: Ergebnisse einer Formel werden ohne Nachkommastellen ang

Verfasst: Montag 19. August 2013, 15:02
von Sirius3
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

Re: Ergebnisse einer Formel werden ohne Nachkommastellen ang

Verfasst: Montag 19. August 2013, 15:04
von 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.