import java.math.BigDecimal;
import java.util.Scanner;
public class Bigdecimal {
//普通高精度加法
public static BigDecimal add(String a,String b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
return a1.add(b1);
}
//高精度减法
public static BigDecimal sub(String a,String b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
return a1.subtract(b1);
}
//高精度乘法
public static BigDecimal mul(String a,String b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
return a1.multiply(b1);
}
//高精度除法,若除不尽则保留scale位
public static BigDecimal div(String a,String b,int scale) {
if(scale < 0 ) {
throw new IllegalArgumentException(
"The scale must be a postive integer or zero");
}
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
if(b1.equals(0)) {
System.out.println("error!");
return new BigDecimal("-1");
}
return a1.divide(b1,scale,BigDecimal.ROUND_HALF_UP);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.nextLine();
String b = in.nextLine();
BigDecimal sum = add(a,b);
BigDecimal su = sub(a,b);
BigDecimal mu = mul(a,b);
BigDecimal di = div(a,b,5);
System.out.println("和:"+sum);
System.out.println("差:"+su);
System.out.println("积:"+mu);
System.out.println("商:"+di);
}
}
高精度(java)
最新推荐文章于 2023-09-15 20:31:26 发布