0

現在、入力を受け取り、小数点以下4桁に丸める関数があります。次のようになります。

    public static double table_round(double n) {
    return (double) Math.round(n * 10000) / 10000;
}

非常に単純な関数ですが、丸め先の数を示す2番目の変数を渡すことができるように変更できると考えていましたが、数学で正しい数の0を出力する方法が正確にはわかりませんステートメントがあります (各 0 は、印刷される小数点以下 1 桁を表します)。これをどのように達成できるかについてのアイデアはありますか? これは私のJavaクラスの追加のクレジットです。私はまだ学んでいるので、見落としている簡単な解決策があれば申し訳ありません.

4

2 に答える 2

0

BigDecimalとそのsetScale()メソッドを使用して、小数点以下の桁数を修正できます。

public static double table_round(double n) {

    // No of digits you want after decimal.
    int digitsAfterDecimal = 5;

    BigDecimal bigDecimal = BigDecimal.valueOf(n);

    // BigDecimal.ROUND_FLOOR is Rounding Mode..denote how your value is rounded off
    // Other ways are:- "ROUND_CEILING", "ROUND_DOWN", etc.. 
    bigDecimal = bigDecimal.setScale(digitsAfterDecimal, BigDecimal.ROUND_FLOOR);

    return Double.valueOf(bigDecimal.toString());
}

詳細については、http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorialを参照してください。

于 2012-10-03T18:27:12.973 に答える