In clojure oder jython: sage ich habe eine Nummer 4.21312312312312 Wie kann ich eine Nummer mit nur den ersten 2 Dezimalstellen erhalten? Es würde 4.21 für das obige Beispiel zurückgeben. Danke
Ich denke, ich habe das nach weiteren Recherchen
%Vor%sollte 4.21
zurückgebenClojure hat eine runde Funktion in clojure.contrib.math - es ist wahrscheinlich am besten, diese zu verwenden, vorausgesetzt, Sie wollen das richtige Verhalten mit all den verschiedenen möglichen numerischen Typen, mit denen Clojure umgehen kann.
In diesem Fall und unter der Annahme, dass Sie das Ergebnis als BigDecimal mit beliebiger Genauigkeit erhalten möchten, können Sie wie folgt eine kleine Hilfsfunktion erstellen:
%Vor%Wenn Sie noch einen Schritt weiter gehen, können Sie die Anzahl der Dezimalstellen parametrisieren:
%Vor%Dieser Thread hat nach einer ähnlichen Abbruchantwort gesucht.
Ich bin mir nicht sicher, ob es eine bessere Lösung gibt, aber ich habe Folgendes herausgefunden.
Bei Nicht-Rundung können Sie multiple by 100 (für 2 Dezimalstellen, 1000 für 3 usw.) in eine Ganzzahl umwandeln und dann durch den ursprünglichen Faktor dividieren, bevor Sie in eine Gleitkommazahl für die numerische Ausgabe konvertieren. Zum Beispiel:
%Vor%