Javaのroundメソッドで、四捨五入するサンプルです。
目次
説明 | 四捨五入する(roundメソッド) |
サンプル | 小数第一位で四捨五入する |
小数第二位または少数第三位で四捨五入する | |
1の位または10の位で四捨五入する |
四捨五入する(roundメソッド)
public static long round(double a) |
- roundメソッドは、小数第一位で四捨五入します。
- 少数第一位以外を対象とする場合は、値を10倍にしたり1/10にする等の操作で求めることができます。
- staticメソッドなのでインスタンスの生成は不要です。
- 引数はdouble型で戻り値はlong型です。引数がfloat型で戻り値がint型もあります。
- roundは丸いという意味です。
小数第一位で四捨五入する
package test1;
public class Test1 {
public static void main(String[] args) {
// 小数第一位で四捨五入
double a = 2.26;
System.out.println(Math.round(a)); //2
// 小数第一位で四捨五入
double b = 2.82;
System.out.println(Math.round(b)); //3
// マイナス値の場合
double c = -2.82;
System.out.println(Math.round(c)); // -3
}
}
roundメソッドで小数第一位を四捨五入しています。
16行目は、マイナスの値の場合です。
小数第二位または少数第三位で四捨五入する
package test1;
public class Test1 {
public static void main(String[] args) {
double a = 12.262;
// 小数第二位で四捨五入
double b = ((double)Math.round(a * 10))/10;
System.out.println(b); // 12.3
// 小数第三位で四捨五入
double c = ((double)Math.round(a * 100))/100;
System.out.println(c); // 12.26
}
}
8行目は、小数第二位で四捨五入しています。以下の操作です。
1.対象の値に10を掛けます。(12.262 * 10 = 122.62)
2.roundメソッドを使用して小数点以下で四捨五入してます。(122.62 → 123)
3.対象の値をdouble型にキャストして再度10で割ります。(123 / 10 = 12.3)
※小数第一位以外を四捨五入する場合はBigDecimalクラスのメソッドもあります。
Java 小数点以下の四捨五入のサンプル(setScale)
1の位または10の位で四捨五入する
package test1;
public class Test1 {
public static void main(String[] args) {
double a = 235.583;
// 1の位で四捨五入
double b = (Math.round(a / 10))*10;
System.out.println(b); // 240.0
// 10の位で四捨五入
double c = (Math.round(a / 100))*100;
System.out.println(c); // 200.0
}
}
8行目は、1の位で四捨五入しています。以下の操作です。
1.対象の値を10で割ります。(235.583 / 10 = 23.5583)
2.roundメソッドを使用して小数点以下で四捨五入します。(23.5583 → 24)
3.対象の値を再度10で掛けます。(24 * 10 = 240)
以下はJava8 API仕様のMathクラスのroundメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#round-double-
関連の記事
Java 切り上げのサンプル(ceil)
Java 切り捨てのサンプル(floor)
Java 小数点がある計算のサンプル(BigDecimal)
Java 小数点以下の四捨五入のサンプル(setScale)