Javaの小数点以下の切り上げのサンプルです。
目次
setScaleメソッド
| public BigDecimal setScale (int newScale, RoundingMode roundingMode) |
- BigDecimalクラスの小数点以下の桁数を丸めるメソッドです。
- setScaleのスケールとは、小数点以下の桁数です。
- 一つ目めの引数は、求める小数点以下の桁数をint型で指定します。
例:小数第三位で切り上げる場合は、2を指定する - 二つ目の引数は、列挙型定数のRoundingMode.UPを指定します。切り上げを意味します。
- 戻り値はBigDecimal型です。
- 以下はJava8 API仕様のBigDecimalクラスのsetScaleメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigDecimal.html#setScale-int-java.math.RoundingMode-
列挙型定数のRoundingMode.UP
- 列挙型の定数です。
- 0から離れるように丸めます。切り上げする時に指定します。
例:小数第一位で指定した場合
2.1 → 3
-2.1 → -3 - 以下はJava8 API仕様のRoundingMode型のリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/math/RoundingMode.html
コード
サンプルのコードです。
10行目は、BigDecimalクラスのコンストラクタの引数に文字列をセットしてインスタンス化しています。
→double型の数値をStringクラスのvalueOfメソッドで文字列に変換しています。
結果を表示しているtoPlainStringメソッドは、BigDecimal型をString型にして返します。
doubleValueメソッドは、BigDecimal型をdouble型にして返します。
package test1;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Test1 {
public static void main(String[] args) {
double d1 = 12.2627;
BigDecimal bd = new BigDecimal(String.valueOf(d1));
// 小数第一位を切り上げ
BigDecimal bd1 = bd.setScale(0, RoundingMode.UP);
System.out.println(bd1.toPlainString()); //13
System.out.println(bd1.doubleValue()); //13.0
// 小数第二位を切り上げ
BigDecimal bd2 = bd.setScale(1, RoundingMode.UP);
System.out.println(bd2.toPlainString()); //12.3
System.out.println(bd2.doubleValue()); //12.3
// 小数第三位を切り上げ
BigDecimal bd3 = bd.setScale(2, RoundingMode.UP);
System.out.println(bd3.toPlainString()); //12.27
System.out.println(bd3.doubleValue()); //12.27
// 小数第四位を切り上げ
BigDecimal bd4 = bd.setScale(3, RoundingMode.UP);
System.out.println(bd4.toPlainString()); //12.263
System.out.println(bd4.doubleValue()); //12.263
}
}
toPlainStringメソッド
| public String toPlainString() |
- BigDecimalクラスのメソッドです。
- BigDecimal型をString型にして返します。
- 以下はJava8 API仕様のtoPlainStringメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigDecimal.html#toPlainString--
doubleValueメソッド
| public double doubleValue() |
- BigDecimalクラスのメソッドです。
- BigDecimal型をdouble型にして返します。
- 以下はJava8 API仕様のdoubleValueメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigDecimal.html#doubleValue--
関連の記事
Java 小数点以下の四捨五入のサンプル(setScale)
Java 小数点以下の切り捨てのサンプル(setScale)
Java 小数第一位で切り上げるサンプル(ceil)
Java 小数第一位で切り捨てるサンプル(floor)
Java 小数第一位で四捨五入するサンプル(round)
Java 小数点のある足し算、引き算、掛け算、割り算のサンプル(BigDecimal)