代码1-----小数
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();
// BigDecimal由此类型转换为double型
  }
  
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) {
// 进行四舍五入--->len表示小数位数
    BigDecimal b1 =
new BigDecimal(d);
    BigDecimal b2 =
new BigDecimal(1);
    
return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
  }
}
public
class BigDecimalDemo01 {
  
/**
    * 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.sub(10.345, 3.333), 3));
    System.out
        .println(
"乘法运算:" + MyMath.round(MyMath.mul(10.345, 3.333), 2));
    System.out.println(
"除法运算:" + MyMath.div(10.345, 3.333, 3));
  }
}
代码2-----整数
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();
// BigDecimal由此类型转换为double型
  }
  
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) {
// 进行四舍五入--->len表示小数位数
    BigDecimal b1 =
new BigDecimal(d);
    BigDecimal b2 =
new BigDecimal(1);
    
return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
  }
}
import java.math.BigInteger;
public
class BigIntegerDemo {
  
/**
    * BigInteger-----整数操作
    */
  
public
static
void main(String[] args) {
    
// 参数是字符串格式
    BigInteger b1 =
new BigInteger(
"123456789");
    BigInteger b2 =
new BigInteger(
"987654321");
    System.out.println(b2.add(b1));
// 两大数相加的操作
    System.out.println(b2.subtract(b1));
// 相减
    System.out.println(b2.multiply(b1));
// 相乘
    System.out.println(b2.divide(b1));
// 相除,余数被省略
    System.out.println(
"最大数:" + b2.max(b1));
// 求出最大数
    System.out.println(
"最小数:" + b2.min(b1));
// 求出最小数
    BigInteger result[] = b2.divideAndRemainder(b1);
// 求出余数的除法操作,
    
// result[0]表示商,result[1]表示余数
    System.out.println(
"商是---->" + result[0] +
"\t余数是---->" + result[1]);
  }
}