【JavaSE筆記】Java常用類及其方法(六)_BigDecimal

本期知識點:
BigDecimal類的常用方法

類BigDecimal

不可變的、任意精度的有符號十進制數。BigDecimal 由任意精度的整數非標度值 和 32 位的整數標度 (scale) 組成。如果爲零或正數,則標度是小數點後的位數。如果爲負數,則將該數的非標度值乘以 10 的負 scale 次冪。因此,BigDecimal 表示的數值是 (unscaledValue × 10-scale)。


運算的時候,float類型和double類型(浮點類型),會丟失數據,不精確,大部分時候數據存儲和整數類型存儲不一致,屬於有效位數字不精確
java提供了一個類:BigDecimal
作用:不可變的、任意精度的有符號十進制數,讓運算更精確!


1. BigDeciaml構造方法

public BigDecimal(String val)


2. BigDecimal常用的方法

public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor)
public BigDecimal divide(BigDecimal divisor, int scale,int roundingMode)
divisor:商
scale:有幾位小數
roundingMode:以什麼樣的模式舍入,其標度爲指定標度。


		public class BigDecimal的構造方法 {
			public static void main(String[] args) {
				BigDecimal a = new BigDecimal("0.09");
				BigDecimal b = new BigDecimal("0.01");
				System.out.println("a+b="+a.add(b));
				System.out.println("——————————");
				
				BigDecimal c = new BigDecimal("1.0");
				BigDecimal d = new BigDecimal("0.32");
				System.out.println("a-b="+c.subtract(d));
				System.out.println("——————————");
				
				BigDecimal e = new BigDecimal("1.015");
				BigDecimal f = new BigDecimal("100");
				System.out.println("e*f="+e.multiply(f));
				System.out.println("——————————");
				
				BigDecimal g = new BigDecimal("1.301");
				BigDecimal h = new BigDecimal("100");
				System.out.println("g/h="+g.divide(f));
				System.out.println("——————————");
				
				System.out.println("g/h 保留3位小數 以過半模式舍入"+g.divide(f, 3 , BigDecimal.ROUND_HALF_UP));
				System.out.println("g/h 保留4位小數 以過半模式舍入"+g.divide(f, 4 , BigDecimal.ROUND_HALF_UP));
			}
}




發佈了51 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章