2016-07-16 6 views
0

Ich möchte ein Double formatieren, das von einem Object erhalten wird, so dass es nur drei Nachkommastellen anzeigt. Hier ist der aktuelle Code:Wie formatiere ich ein Double, das von einem Objekt in Java kommt?

Three a = Data.get(index); 
// Get the y-axis acceleration value 
double b = a.getY(); 
String accelerationOutUnfiltered = Double.toString(b); 
Data[0] = accelerationOutUnfiltered; 

Hinweis: ich dies in Android tue, und wenn ich String.format("%.3f", y) verwenden dies nicht funktioniert, und es wirft mir einen Fehler in Android Studio. Derzeit funktioniert der obige Code, aber es zeigt 15 Nachkommastellen an.

Ich habe verschiedene Formen ausprobiert, aber alle haben versagt. Bitte helfen Sie. Danke :)

+0

sollten Sie DecimalFormat Klasse als Gasthaus nutzen die Antwort unten ... können wir den Code sehen Sie versuchen ???? –

+2

Siehe auch http://stackoverflow.com/questions/153724/how-to-round-a-number-to-n-decimal-places-in-java – Unknown

+0

Was ist der Fehler, den Sie von String.format ("% .3f", y) – Kariem

Antwort

1

Sie könnten DecimalFormatter verwenden.

Zum Beispiel:

double b = a.getY(); 

DecimalFormat formatter = new DecimalFormat("#.###"); 
formatter.setRoundingMode(RoundingMode.CEILING); 

String formattedDouble = formatter.format(b); 
+0

Das hat funktioniert. Vielen Dank. Jetzt muss ich drei Werte formatieren, um sie in eine Datei zu schreiben. Ich habe versucht: String a = formatter2.format (g, h, i); Aber es funktioniert nicht. – jlopez

+0

Formatieren Sie die Werte separat, und verketten Sie sie dann zu einem "String". – earthw0rmjim

0

Haben Dezimal-Formatierer versucht?

Sie etwas tun, wie folgt aus:

DecimalFormat df = new DecimalFormat("#.#####"); 
df.format(<your_number>); 
Verwandte Themen