Wie abgeschnitten decimal in Java OHNE Rundung?
Ich habe eine Reihe von Java Dezimalzahlen wie:
0.43678436287643872
0.4323424556455654
0.6575643254344554
Möchte ich abgeschnitten alles nach 5 Dezimalstellen. Wie ist das möglich?
- Technisch gesehen, ist keine: der Akt des Abschneidens der weiteren Dezimalstellen rundet, nur Sie sind immer auf der Rundung nach unten auf 5 Dezimalstellen. Siehe die Antworten unten für Ihre Optionen.
- wollen Sie das Ergebnis ein String, oder eine Reihe?
- Ich möchte das Ergebnis eine Zahl sein
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen, um die Dinge schnell und einfach. 😉
Drucke
-0.6575699999999999
(siehe mein edit)Math.floor(x)
war etwas langsamer als die cast(long) x
aber das war zumindest vor 5 Jahren. Ich kann mir vorstellen, wenn Sie versuchte, Sie zu JMH, das heute es ist wahrscheinlich nicht spürbar langsamer.FLOOR
.float
unddouble
Werte.ODER
wo
x
enthält den Wert, den Sie möchten, schneiden Sie wie0.43678436287643872
10.123456789
wird10.1234
.Den DecimalFormat könnte auch Hilfe hier:
Glaube ich, dass die
java.text.DecimalFormat
Klasse, was Sie brauchen.Ich würde es mit regulären Ausdrücken so:
Kann das Muster leicht geändert werden, wenn Sie unterstützen müssen mehr/weniger Dezimalstellen.
Verallgemeinern Peter beantworten, die Sie tun können: