Java で double を小数点以下 2 桁に丸める方法
-
Math.round(double*100.0)/100.0
を用いたdouble
の小数点以下 2 桁への丸め -
BigDecimal
を用いたdouble
の小数点以下 2 桁への丸め -
DecimalFormat
を用いたdouble
の小数点以下 2 桁への丸め -
Apache Common
Math を用いたdouble
の小数点以下 2 桁への丸め
前回のチュートリアル記事では、Java で Array
を ArrayList
に変換する方法を、詳細な例を用いて様々なメソッドを用いて理解しました。今回は、シナリオ分析のさまざまな形式を通して、より多くのタイプの Java の使用法を見ていきます。
このチュートリアル記事では、Java を使った double
を小数点以下 2 桁に丸める方法について説明します。ダブルの値を小数点以下 2 桁に丸めるには、Math.round()
、setScale()
メソッドを使った BigDecimal
、DecimalFormat
、Apache Common
ライブラリの 4つの方法があります。
それぞれの方法について例を挙げて説明しましょう。
Math.round(double*100.0)/100.0
を用いた double
の小数点以下 2 桁への丸め
Java では Math.round()
メソッドを用いて、与えられた数を最も近い整数に丸めることができます。この記事では、double
の小数点以下 2 桁への丸めを学ぶので、Math.round()
のアプリケーションには (double*100.0)/100.0
が含まれることになります。
以下の例を見てみましょう。
import java.io.*;
import java.lang.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
double d = 7435.9876;
double roundDbl = Math.round(d * 100.0) / 100.0;
System.out.println("Rounded Double value: " + roundDbl);
}
}
出力:
Rounded Double value: 7435.99
BigDecimal
を用いた double
の小数点以下 2 桁への丸め
このようにして、まず double
を BigDecimal
に変換し、setScale()
メソッドを使って変換した BigDecimal
を小数点以下 2 桁に丸めることができます。以下の例を理解してみましょう。
import java.io.*;
import java.lang.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
public class Main {
public static void main(String[] args) {
double val1 = 4312.186462;
System.out.println("Double value: " + val1);
BigDecimal bd = new BigDecimal(val1).setScale(2, RoundingMode.HALF_UP);
double val2 = bd.doubleValue();
System.out.println("Rounded Double value: " + val2);
}
}
出力:
Double value: 4312.186462
Rounded Double value: 4312.19
DecimalFormat
を用いた double
の小数点以下 2 桁への丸め
また、DecimalFormat
を用いて double
の値を小数点以下 2 桁に丸めることもできます。以下の例で説明しましょう。
import java.io.*;
import java.lang.*;
import java.text.DecimalFormat;
import java.util.*;
public class Main {
public static void main(String[] args) {
double val1 = 6482.236789;
System.out.println("Double value: " + val1);
DecimalFormat df = new DecimalFormat("###.##");
System.out.println("Rounded Double value (DecimalFormat): " + df.format(val1));
}
}
出力:
Double value: 6482.236789
Rounded Double value: 6482.24
Apache Common
Math を用いた double
の小数点以下 2 桁への丸め
Java では、double
を小数点以下 2 桁に丸めるために特殊な種類の数学ライブラリが使われており、それが Apache Common
です。以下の例でその利用方法を説明しよう。
このライブラリの依存関係を Java プロジェクト内の xml ファイルに追加する必要があります。
<dependency>
<groudId>org.apache.commons</groudId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
それでは、double
を小数点以下 2 桁に丸めるための apache ライブラリの実装を確認してみよう。
import java.io.*;
import java.lang.*;
import java.util.*;
import org.apache.commons.math3.util.Precision;
public class Main {
public static void main(String[] args) {
double input = 9476.2351;
double roundedDbl = Precision.round(input, 2);
System.out.println("Rounded Double value: " + roundedDbl);
}
}
出力:
Rounded Double value: 9476.24
単純な Java アプリケーションでは、最初の 3つの方法に従うことをお勧めします。