2016-07-16 4 views
0

Objectから得られたDoubleをフォーマットしたいので、小数点以下3桁しか表示しないようにします。オブジェクトをJavaでフォーマットする方法は?

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

注:ここでは、現在のコードだ私は、Androidでこれをやっている、と私はString.format("%.3f", y)を使用する場合、これは動作しませんし、それは、Android Studioで私にエラーをスローします。現在、上記のコードは動作しますが、小数点以下15桁を表示します。

私はいくつかのフォームを試しましたが、すべて失敗しました。助けてください。ありがとう:)

+0

お宿として、以下の答えをのDecimalFormatクラスを使用する必要があります...私たちは、あなたがしようとしたコードを見ることができますが???? –

+2

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

+0

を参照してください。String.formatから得られるエラーは何ですか? "%.3f"、y) – Kariem

答えて

1

DecimalFormatterを使用できます。例えば

double b = a.getY(); 

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

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

これはうまくいった。ありがとうございました。今、ファイルに書き込むために3つの値を書式設定するためにそれを行う必要があります。私は試しました: String a = formatter2.format(g、h、i);しかし、それは動作しません。 – jlopez

+0

値を別々にフォーマットし、それらを1つの 'String'に連結します。 – earthw0rmjim

0

は小数点フォーマッタを試みたことがありますか?

あなたはこのような何か:

DecimalFormat df = new DecimalFormat("#.#####"); 
df.format(<your_number>); 
関連する問題