Soll das Ergebnis der Rundung eine Zeichenkette sein, kann man String.format() benützen:
String s = String.format("%.3f", 1.2345678); // s = 1.235
Benötigt man den gerundeten Wert nur für die Konsolenausgabe, kann die Methode printf() verwendet werden:
System.out.printf("%.3f\n", 1.2345678); // gibt 1.235 aus
Der String “%.3f” ist ein sogenannter Format-String. Mit dem Zeichen ‘%’ wird die Beschreibung einer Leerstelle eingeleitet. Mit dem Zeichen ‘f’ wird der Datentyp der Leerstelle spezifiziert. Im konkreten Anwendungsfall ist die Leerstelle also mit einem double-Wert zu sättigen. Mit ‘.3’ wird die Formatierung mit 3 gerundeten Nachkommastellen festgelegt.
Benötigt man die gerundete Gleitkommazahl für weitere Berechnungen, kann man folgendermaßen vorgehen:
double x = 1.2345678; double a = Math.round(x * 1000.0) / 1000.0; // a = 1.235
Beachte: Math.round() liefert für double-Argumente ein Ergebnis vom Typ long zurück. Mit dem Typ long kann man nicht den gesamten Wertebereich des Typs double abbilden.
Long: -9223372036854775808 bis 9223372036854775807 (-263 bis 263-1)
Double: -1,7E+308 bis +1,7E+308
Ist das Argument von round() größer als die größte long-Zahl, ist das Ergebnis die größte long-Zahl.