2017-11-22 12 views
0

は小数点以下の桁数にかかわらず ".0"で終わる数字として表示されます。 massCounter[]のインデックスは2倍です。全体の数ではなく、最初の小数点以下をどのように丸めるのですか?配列で丸めて

public static double massTotal(double[] massCounter) { 
    double massTotal = 0.0; 
    for (int i = 0; i < massCounter.length; i++) { 
     massTotal += Math.round(massCounter[i] * 10.0/10.0); 
    } 
    return massTotal; 
} 

ありがとうございます!

+0

:https://stackoverflow.com/questions/ 153724/n-to-n-decimal-places-in-java?rq = 1、特にDecimalFormat – reden

+0

'* 10.0/10.0'のポイントは何ですか? – shmosel

+2

あなたは 'Math.round(massCounter [i] * 10.0)/ 10.0'を行うことを意味すると思います。 – shmosel

答えて

1

あなたMath.round機能は、基本的にすべてを丸め、すなわち

1.5 - > 2

22.4 - > 22

だから、それゆえ、それら全てがこの方法で合計を取得する場合、それは常にx.0であり、doubleとして整数を出力しており、最初の.0を示しています。

Math.roundを完全に削除してからString.formatを使用して結果を印刷すると、小数点以下1桁の出力が表示されます。

String.format("%.1f", massTotal(myArray)) 

あるいはさらに簡単に、あなたがJava8のcapabalitiesを使用することを許可されている場合:

double total = DoubleStream.of(myArray).sum(); 
System.out.println(String.format("%.1f", total)); 
私はこの質問には、あなたの質問に答えることができると信じて

Online example