BigDecimal類型(+ - * /)所用的屬性
BigDecimal類
對於不需要任何準確計算精度的數字可以直接使用float或double,但是如果需要精確計算的結果,則必須使用BigDecimal類,而且使用BigDecimal類也可以進行大數的操作。BigDecimal類的常用方法如表11-15所示。
表11-15 BigDecimal類的常用方法
序號
方 法
類型
描 述
1
public BigDecimal(double val)
構造
將double表示形式轉換
爲BigDecimal
2
public BigDecimal(int val)
構造
將int表示形式轉換爲
BigDecimal
3
public BigDecimal(String val)
構造
將字符串表示
形式轉換爲BigDecimal
4
public BigDecimal add(BigDecimal augend)
普通
加法
5
public BigDecimal subtract(BigDecimal
subtrahend)
普通
減法
6
public BigDecimal multiply(BigDecimal
multiplicand)
普通
乘法
7
public BigDecimal divide(BigDecimal
divisor)
普通
除法
範例:進行四捨五入的四則運算
package org.lxh.demo11.numberdemo;
import java.math.BigDecimal;
class MyMath {
public static double add(double d1, double d2)
{ // 進行加法運算
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.add(b2).doubleValue();
}
public static double sub(double d1, double d2)
{ // 進行減法運算
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.subtract(b2).doubleValue();
}
public static double mul(double d1, double d2)
{ // 進行乘法運算
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.multiply(b2).doubleValue();
}
public static double div(double d1,
double d2,int len) {// 進行除法運算
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.divide(b2,len,BigDecimal.
ROUND_HALF_UP).doubleValue();
}
public static double round(double d,
int len) { // 進行四捨五入
操作
BigDecimal b1 = new BigDecimal(d);
BigDecimal b2 = new BigDecimal(1);
// 任何一個數字除以1都是原數字
// ROUND_HALF_UP是BigDecimal的一個常量,
表示進行四捨五入的操作
return b1.divide(b2, len,BigDecimal.
ROUND_HALF_UP).doubleValue();
}
}
public class BigDecimalDemo01 {
public static void main(String[] args) {
System.out.println("加法運算:" +
MyMath.round(MyMath.add(10.345,
3.333), 1));
System.out.println("乘法運算:" +
MyMath.round(MyMath.mul(10.345,
3.333), 3));
System.out.println("除法運算:" +
MyMath.div(10.345, 3.333, 3));
System.out.println("減法運算:" +
MyMath.round(MyMath.sub(10.345,
3.333), 3));
}
}
BigDecimal 類型的大數 的加減乘除運算
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.