超級大的整數運算,超過long取值範圍整數,封裝成BigInteger類型的對象
四則運算代碼:
public static void main(String[] args) {
//大數據封裝爲BigInteger對象
BigInteger big1 = new BigInteger("12345678909876543210");
BigInteger big2 = new BigInteger("98765432101234567890");
//add實現加法運算
BigInteger bigAdd = big1.add(big2);
//subtract實現減法運算
BigInteger bigSub = big1.subtract(big2);
//multiply實現乘法運算
BigInteger bigMul = big1.multiply(big2);
//divide實現除法運算
BigInteger bigDiv = big2.divide(big1);
}
在程序中執行下列代碼
System.out.println(0.09 + 0.01);
System.out.println(1.0 - 0.32);
System.out.println(1.015 * 100);
System.out.println(1.301 / 100);
double和float類型在運算中很容易丟失精度,造成數據的不準確性
建議浮點數據以字符串形式給出,因爲參數結果是可以預知的
實現加法減法乘法代碼如下:
public static void main(String[] args) {
//大數據封裝爲BigDecimal對象
BigDecimal big1 = new BigDecimal("0.09");
BigDecimal big2 = new BigDecimal("0.01");
//add實現加法運算
BigDecimal bigAdd = big1.add(big2);
BigDecimal big3 = new BigDecimal("1.0");
BigDecimal big4 = new BigDecimal("0.32");
//subtract實現減法運算
BigDecimal bigSub = big3.subtract(big4);
BigDecimal big5 = new BigDecimal("1.105");
BigDecimal big6 = new BigDecimal("100");
//multiply實現乘法運算
BigDecimal bigMul = big5.multiply(big6);
對於浮點數據的除法運算,和整數不同,可能出現無限不循環小數,因此需要對所需要的位數進行保留和選擇舍入模式
int scale:保留幾位小數 int roundingMode:保留模式
BigDecimal a = new BigDecimal(“1.301”);
BigDecimal b = new BigDecimal(“101”);
BigDecimal c = a.divide(b,2,BigDecimal.ROUND_HALF_UP);//四捨五入