In einer wirklich surrealen Erfahrung habe ich 20 Minuten mit einer Aufgabe verbracht, von der ich dachte, dass sie 20 Sekunden dauern würde.
Ich möchte Dezimalzahlen mit 3 oder mehr Stellen verwenden. Ich kann nichts über einen Platz bekommen, und selbst in diesem Fall ist es Unsinn.
Zum Beispiel kann ich 1/3
nicht anders als 0
oder 0.0
anzeigen lassen.
Googeln führte mich zu Dezimal, aber Dezimal auch konnte nicht helfen.
Bitte beende diese Folter und sag mir, was ich tun muss, damit 1/3
als .333
erscheint!
Bearbeiten Vielen Dank, dass Sie das geklärt haben! Anscheinend haben Computerwissenschaftler etwas erfunden, das als Integer-Division bezeichnet wird, um Mathematiker zu verwirren und zu irritieren. Danke, dass Sie so freundlich sind, meine Verwirrung zu zerstreuen.
In% Python 2 hat 1/3
eine ganze Zahl, weil beide Operanden ganze Zahlen sind. Sie müssen float division durchführen:
Oder:
%Vor% Was bewirkt, dass /
echte Division und //
ganzzahlige Division machen. Dies ist der Standardwert von Python 3.
Wenn Sie 2 ganze Zahlen teilen, erhalten Sie ein abgeschnittenes Integer-Ergebnis (d. h. jeder Bruchteil des Ergebnisses wird verworfen), weshalb
%Vor%gibt Ihnen:
%Vor% Um dieses Problem zu vermeiden, muss mindestens einer der Operanden ein float sein. z. B. 1.0 / 3
oder 1 / 3.0
oder (natürlich) 1.0 / 3.0
vermeiden eine ganzzahlige Kürzung . Dieses Verhalten ist für Python übrigens nicht einzigartig.
( Bearbeiten : Wie unten in einem hilfreichen Kommentar von @Ivc erwähnt, wenn einer der ganzzahligen Operanden negativ ist, lautet das Ergebnis floor () " stattdessen - siehe diesen Artikel über den Grund dafür.
Es kann auch zu Verwirrung bezüglich der internen und externen Repräsentation der Nummer kommen. Die Nummer ist, was sie ist, aber wir können bestimmen, wie sie angezeigt wird.
Sie können die externe Darstellung mit Formatierungsanweisungen steuern. Zum Beispiel kann eine Zahl mit 5 Nachkommastellen wie folgt angezeigt werden:
%Vor%Um 15 Nachkommastellen zu erhalten.
%Vor% Schließlich gibt es eine "neue und verbesserte" Möglichkeit, Strings / Zahlen mit der .format()
-Funktion zu formatieren, die für wahrscheinlich viel länger als die oben gezeigte %
-Formatierung sein wird. Ein Beispiel wäre:
würde dir geben:
%Vor% In Python2 müssen Sie mindestens einen der Operanden als Fließkommazahl angeben. Um nur 3 Dezimalstellen zu verwenden, können Sie die Methode round()
verwenden:
In Python3 scheint es, dass sie keine Ganzzahldivision standardmäßig ausführen, also können Sie tun:
%Vor%Tags und Links python