Zum Beispiel, wenn ich 3.333 habe und wenn dieser Code ausgeführt wird, brauche ich die Nummer 3.33.Wie kann ich die letzte Ziffer einer Dezimalzahl in Java entfernen?
Dies ist der Code, den ich habe, die das tun sollte, aber nicht:
String number = Double.toString(first);
number = number.substring(0, string.length() - 1);
first = Double.parseDouble(number);
ich es versucht zu tun, indem Sie die Zahl in einen String konvertieren, letzte Zeichen abgeschnitten und in eine Doppelspar nochmal. Aber es funktioniert nicht. Statt 1 Ziffer abzuschneiden, schneidet es 2 ab, zum Beispiel würde es oberhalb 3,3 zurückgeben.
Ist diese Methode zuverlässig und wenn ja, was kann ich tun, um sie zu beheben?
Gibt es auch eine Chance für diese Methode, das Programm zum Absturz zu bringen (nur Dezimalzahlen gehen durch diesen Code) und würde es einen Verlust an Genauigkeit geben?
Ich empfehle BigDecimal anstelle von Doppel –
warum? Ich sehe keinen Grund dafür – loonytune
String verfügt über einen Formatierer, um die Zeichenfolge an die gewünschte Genauigkeit zu formatieren. Sie müssen es in einer Zeichenfolge drucken, um die gewünschte Genauigkeit zu erzielen. Aber konvertiere nicht zu String und dann zurück zu Double. Hier ist die [API für String.Format] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#format (java.lang.String,% 20java.lang.Objekt ...)) – Frecklefoot