1. 程式人生 > >Java小數截斷

Java小數截斷

Java計算資料小數截斷,目前提供了下面幾種方式,這些方式截斷小數如下:

用的測試程式碼如下,裡面有對幾種方式的註釋心得

public class Test {

	public static void main(String[] args) {
		BigDecimal bigDecimal1 = new BigDecimal(-25);
		BigDecimal bigDecimal2 = new BigDecimal(7);

		// 無論正數或者負數都進1
		BigDecimal bigDecimal3 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_UP);
		System.out.println("bigDecimal3:" + bigDecimal3);

		// 無論正數或者負數直接舍入,任何情況都不進1
		BigDecimal bigDecimal4 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_DOWN);
		System.out.println("bigDecimal4:" + bigDecimal4);

		// 正數在舍入的時候都進1;負數直接舍掉
		BigDecimal bigDecimal5 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_CEILING);
		System.out.println("bigDecimal5:" + bigDecimal5);

		// 正數直接舍掉,負數舍入時進1
		BigDecimal bigDecimal6 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_FLOOR);
		System.out.println("bigDecimal6:" + bigDecimal6);

		// 四捨五入
		BigDecimal bigDecimal7 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_HALF_UP);
		System.out.println("bigDecimal7:" + bigDecimal7);
		
		// 四捨五入
		BigDecimal bigDecimal8 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_HALF_DOWN);
		System.out.println("bigDecimal8:" + bigDecimal8);
		
		// 四捨五入
		BigDecimal bigDecimal9 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_HALF_EVEN);
		System.out.println("bigDecimal9:" + bigDecimal9);
		

	}