java.math.BigDecimal类提供用于算术,比例运算,舍入,比较,哈希和格式转换的操作。
提供了两种类型的操作来操纵BigDecimal的比例尺-
缩放/舍入运算
小数点运动运算
以下是BigDecimal值的一些构造函数-
| 序号 | 构造函数与说明 |
|---|---|
| 1 | BigDecimal(BigInteger val) 此构造函数用于将BigInteger转换为BigDecimal。 |
| 2 | BigDecimal(BigInteger unscaledVal,int scale) 此构造函数用于将BigInteger未缩放的值和一个int缩放比例转换为BigDecimal。 |
| 3 | BigDecimal(BigInteger unscaledVal,int scale,MathContext mc) 此构造函数用于将BigInteger未缩放的值和一个int比例转换为BigDecimal,并根据上下文设置进行舍入。 |
| 4 | BigDecimal(BigInteger val,MathContext mc) 此构造函数用于根据上下文设置将BigInteger转换为BigDecimal舍入。 |
| 5 | BigDecimal(char [] in) 此构造函数用于将BigDecimal的字符数组表示形式转换为BigDecimal,接受与BigDecimal(String)构造函数相同的字符序列。 |
| 6 | BigDecimal(char [] in,int offset,int len) 此构造函数用于将BigDecimal的字符数组表示形式转换为BigDecimal,接受与BigDecimal(String)构造函数相同的字符序列,同时允许子数组指定。 |
以下是一个例子-
import java.math.BigDecimal;
public class Demo {
public static void main(String[] argv) throws Exception {
BigDecimal val1 = new BigDecimal("37578975.8768");
BigDecimal val2 = new BigDecimal("62567878.9768");
BigDecimal val3 = new BigDecimal("72567874.3768");
System.out.println("Value 1 : "+val1);
System.out.println("Value 2 : "+val2);
val1 = val1.add(val2);
System.out.println("Addition Operation = " + val1);
val1 = val1.multiply(val2);
System.out.println("Multiplication Operation = " + val1);
val2 = val3.subtract(val2);
System.out.println("Subtract Operation = " + val2);
val2 = val3.divide(val2,BigDecimal.ROUND_UP);
System.out.println("Division Operation = " + val2);
}
}输出结果
Value 1 : 37578975.8768 Value 2 : 62567878.9768 Addition Operation = 100146854.8536 Multiplication Operation = 6265976294387200.48179648 Subtract Operation = 9999995.4000 Division Operation = 7.2568