2016-08-05 17 views
0

Ich möchte mit 3 Nachkommastellen in Python arbeiten. Welche Einstellung muss geändert werden?Wie wird eine allgemeine Option in Python festgelegt, um überall nur N Ziffern anzuzeigen?

Ich möchte, dass 1.0/3 0,333 zurückgeben würde, und nicht 0,33333333333333333 wie es der Fall in meinem Jupyter Notebook ist, mit Python 2.7.11 und Anaconda 4.0.0.

In meiner Forschung habe ich von der Decimal-Klasse gehört, aber ich möchte nicht Dezimal (x) in meinem Code verwenden jedes Mal, wenn ich einen Float anzeigen, weder die String-Formatierung noch die runde Funktion, obwohl ich es verwende vorläufig (weil ich es nicht jedes Mal benutzen will).

Ich denke, es gibt eine allgemeine Lösung, eine Einstellung nur einmal berechnet.

+0

Wenn die Ergebnisse von numpy kommen, können Sie [numpy.set_printoptions] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.set_printoptions.html) verwenden. – Mephy

+0

Ist das nur zum Drucken? Wenn dies der Fall ist, könnten Sie eine Unterklasse des Floats erstellen, wie [hier] (http://stackoverflow.com/questions/1566936/easy-pretty-printing-of-floats-in-python). Nachdem dies gesagt wurde, könnte dies ein Duplikat sein. –

Antwort

0

Verwenden Sie numpy und versuchen Sie es;

round(1.0/3, 3) 

oder

>>> 1.0/3 
0.3333333333333333 

>>> '{:0.3f}'.format(1.0/3) 
'0.333' 
+0

Der OP hat sehr deutlich gesagt, dass er etwas will, das die Rundung automatisch so ausführt, dass alle Floats gerundet sind. Er sagte ausdrücklich, dass er derzeit die "runde" Funktion benutzt, aber er mag sie nicht, weil er sie für jede Nummer anrufen muss. Wenn die Frage einfach lauten würde: "Wie runde ich eine Zahl auf drei Dezimalstellen ab", wäre es ein Duplikat von vielen anderen. – zondo

0

Es gibt keine "one-time" Lösung für Ihr Problem. Und ich denke, dass Ihr Ansatz ein wenig fehlgeleitet sein könnte.

Ich nehme an, dass Ihre Interaktion mit Jupyter oder Ipython zu der Schlussfolgerung geführt hat, dass Python als numerischer Rechner recht handlich ist. Leider sind beide der oben genannten Programme nur Wrapper oder REPL Programme und im Hintergrund kommen mit der vollen Programmiersprache Flexibilität, die Python bietet.