2017-08-20 13 views
1

この10進値フォーマット(8487.0)のフォーマットに問題があります。 "8.48"。Androidの別の10進数フォーマットの10進数フォーマット

私はここに掲載された他の問題の解決策を試しましたが、成功しませんでした。

例:

Double n1 = Double.parseDouble (String.valueOf (8487.0)); 
DecimalFormat dec = new DecimalFormat ("#. ##"); 
String credits = dec.format (n1);   Log.d (TAG, "test" + credits); 

現在はこのような出力があります:8487

すべてのヘルプは歓迎され、感謝を。

+0

期待する出力は? – Mandy8055

+0

@ Mandy8055から8487.0から8.48 –

+0

「8487.0 = 8.487e3」ではなく「8.48」。だから、出力として何を望んでいるのか正確に教えてください。 – Mandy8055

答えて

1

次の2つのケースがあり、文字列の形式

String answer = String.format("%.2f", (8487.0/1000));   
Log.d(TAG, answer); //8.49 
0

したがって、係数を1000倍に減らしたいですか?例えばg〜kg?

Double n1 = Double.parseDouble (String.valueOf (8487.0)); 
Double n2 = n1/1000; 

DecimalFormat dec = new DecimalFormat ("#. ##"); 
String credits = dec.format(n2); 

Log.d (TAG, "test" + credits); 
+0

ありがとうございました。彼の答えは問題を解決した。 –

1

を使用することができます。あなたがを丸めようとするかどうかはかどうか。両方のケースのサンプルコードは次のとおりです。

double d = 8487.0; 
d /= 1000; 
DecimalFormat f = new DecimalFormat("##.00"); 
f.setRoundingMode(RoundingMode.FLOOR); 
String notRounded = f.format(d); 
System.out.println("Not Rounded: " + notRounded); 

f.setRoundingMode(RoundingMode.HALF_UP); 
String rounded = f.format(d); 
System.out.println("Rounded: " + rounded); 
+0

ありがとうございました。彼の答えは問題を解決した。 –