Java 小数点以下の切り捨てのサンプル(setScale)

Javaの小数点以下の切り捨てのサンプルです。
BigDecimalクラスのsetScaleメソッドを使用します。

setScaleメソッド

public  BigDecimal  setScale (int newScale, RoundingMode roundingMode)
  • setScaleのスケールとは、小数点以下の桁数です。
  • 一つ目めの引数は、設定するスケールをint型で指定します。
    例:小数第三位で切り捨てする場合は、2を指定する。
  • 二つ目の引数は、列挙型のRoundingMode型です。切り捨てする場合、列挙定数のRoundingMode.DOWNを指定します。
  • 以下はJava8 API仕様のBigDecimalクラスのsetScaleメソッドのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigDecimal.html#setScale-int-java.math.RoundingMode-

RoundingMode.DOWN

コード

サンプルコードです。
10行目は、BigDecimalクラスのコンストラクタの引数に文字列をセットしてインスタンス化しています。
→double型の数値をvalueOfメソッドで文字列に変換しています。
13,18,23,28行目は、setScaleメソッドで切り捨てを行っています。
結果を表示している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.DOWN);
		System.out.println(bd1.toPlainString()); //12
		System.out.println(bd1.doubleValue()); //12.0
		
		// 小数第二位を切り捨て
		BigDecimal bd2 = bd.setScale(1, RoundingMode.DOWN);
		System.out.println(bd2.toPlainString()); //12.2
		System.out.println(bd2.doubleValue()); //12.2
		
		// 小数第三位を切り捨て
		BigDecimal bd3 = bd.setScale(2, RoundingMode.DOWN);
		System.out.println(bd3.toPlainString()); //12.26
		System.out.println(bd3.doubleValue()); //12.26
		
		// 小数第四位を切り捨て
		BigDecimal bd4 = bd.setScale(3, RoundingMode.DOWN);
		System.out.println(bd4.toPlainString()); //12.262
		System.out.println(bd4.doubleValue()); //12.262
	}
}

関連の記事

Java 小数点以下の四捨五入のサンプル(setScale)
Java 小数点以下の切り上げのサンプル(setScale)
Java 小数第一位で切り上げるサンプル(ceil)
Java 小数第一位で切り捨てるサンプル(floor)
Java 小数第一位で四捨五入するサンプル(round)
Java 小数点のある足し算、引き算、掛け算、割り算のサンプル(BigDecimal)




△上に戻る