はじめに
数値を丸めるとは、その数値の近似値を求めることです。Java では、浮動小数点数を丸める方法がいくつかあります。この実験では、Java で様々な方法を使って数値を丸める方法を学びます。
数値を丸めるとは、その数値の近似値を求めることです。Java では、浮動小数点数を丸める方法がいくつかあります。この実験では、Java で様々な方法を使って数値を丸める方法を学びます。
System.out.printf() メソッドを使用して、丸められた数値をコンソールに出力することができます。精度修飾子を使用して、丸めたい小数点以下の桁数を指定することができます。
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
float g = 9.807f;
System.out.printf("Pi: %.2f %n", pi); // prints Pi: 3.14
System.out.printf("One Third: %.3f %n", oneThird); // prints One Third: 0.333
System.out.printf("Gravitation Acceleration(g): %.0f", g); // prints Gravitation Acceleration(g): 10
}
コードを実行するには、ターミナルを開き、コードファイルがあるディレクトリに移動します。次に、javac filename.java を使用してコードをコンパイルします。その後、java filename を使用して実行します。
DecimalFormat クラスを使用して、数値をフォーマットしたいパターンを指定することができます。ハッシュ記号 (#) を使用して小数点以下の桁数を指定し、format() メソッドを使用して桁を丸めることができます。
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
float g = 9.807f;
DecimalFormat d1 = new DecimalFormat("#.##");
DecimalFormat d2 = new DecimalFormat("#.###");
DecimalFormat d3 = new DecimalFormat("#");
System.out.println("Pi: " + d1.format(pi)); // prints Pi: 3.14
System.out.println("One Third: " + d2.format(oneThird)); // prints One Third: 0.333
System.out.println("Gravitation Acceleration(g):" + d3.format(g)); // prints Gravitation Acceleration(g): 10
}
コードを実行するには、ターミナルを開き、コードファイルがあるディレクトリに移動します。次に、javac filename.java を使用してコードをコンパイルします。その後、java filename を使用して実行します。
Math.round() を使用して小数を丸めることができます。これは、数値を小数点以下 0 桁に丸めたい場合に使用できます。
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
float g = 9.807f;
System.out.println("Pi: " + Math.round(pi)); // prints Pi: 3
System.out.println("One Third: " + Math.round(oneThird)); // prints One Third: 0
System.out.println("Gravitation Acceleration(g):" + Math.round(g)); // prints Gravitation Acceleration(g): 10
}
コードを実行するには、ターミナルを開き、コードファイルがあるディレクトリに移動します。次に、javac filename.java を使用してコードをコンパイルします。その後、java filename を使用して実行します。
小数点以下 0 桁より多くの桁数に丸めたい場合、独自のメソッドを作成して小数を丸めることができます。以下のメソッドは、小数値と丸める小数点以下の桁数をパラメータとして受け取り、丸められた数値を返します。
public static double round(double num, int places) {
double scale = Math.pow(10, places);
double roundedNum = Math.round(num * scale) / scale;
return roundedNum;
}
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
float g = 9.807f;
System.out.println("Pi: " + round(pi, 2)); // prints Pi: 3.14
System.out.println("One Third: " + round(oneThird, 3)); // prints One Third: 0.333
System.out.println("Gravitation Acceleration(g):" + round(g, 0)); // prints Gravitation Acceleration(g): 10.0
}
コードを実行するには、ターミナルを開き、コードファイルがあるディレクトリに移動します。次に、javac filename.java を使用してコードをコンパイルします。その後、java filename を使用して実行します。
BigDecimal クラスの round() メソッドを使用して数値を丸めることができます。以下のコードは、BigDecimal クラスの round() メソッドを使用して小数を丸める方法を示しています。
public static void main(String args[]) {
BigDecimal pi = new BigDecimal("3.14159265359");
pi = pi.setScale(4, RoundingMode.HALF_UP); // Rounds to 4 decimal places
System.out.println("Pi: " + pi); // prints Pi: 3.1416
}
コードを実行するには、ターミナルを開き、コードファイルがあるディレクトリに移動します。次に、javac filename.java を使用してコードをコンパイルします。その後、java filename を使用して実行します。
数値が BigDecimal 型でない場合、まずそれを変換してから BigDecimal クラスを使用して丸めることができます。以下のメソッドは、double データ型の数値を丸めるために使用できます。
public static double round(double num, int places) {
BigDecimal b = new BigDecimal(Double.toString(num));
b = b.setScale(places, RoundingMode.HALF_UP);
return b.doubleValue();
}
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
double g = 9.807f;
pi = round(pi, 4);
oneThird = round(oneThird, 3);
g = round(g, 0);
System.out.println("Pi: " +pi); // prints Pi: 3.1416
System.out.println("One Third: " + oneThird); // prints One Third: 0.333
System.out.println("Gravitation Acceleration(g):" + g); // prints Gravitation Acceleration(g): 10.0
}
コードを実行するには、ターミナルを開き、コードファイルがあるディレクトリに移動します。次に、javac filename.java を使用してコードをコンパイルします。その後、java filename を使用して実行します。
この実験では、Java で小数を丸めるさまざまな方法を学びました。簡単な丸めには printf() と DecimalFormat() を、小数点以下 0 桁に丸めるには Math.round() を、正確な丸めには BigDecimal を、decimal4j ライブラリを使用した丸めには DoubleRounder を使用しました。また、任意の小数を任意の小数点以下の桁数に丸めるカスタムメソッドも作成しました。