62,614
社区成员
发帖
与我相关
我的任务
分享
import java.math.*;
public class Test {
public static void main(String[] args) {
BigDecimal a=new BigDecimal(0.5);
BigDecimal b=new BigDecimal(0.2);
System.out.println(a.divide(b));
}
}
import java.math.BigDecimal;
class MyMath {
public static double add(String num1, String num2) {
BigDecimal bd1 = new BigDecimal(num1);
BigDecimal bd2 = new BigDecimal(num2);
return bd1.add(bd2).doubleValue();
}
public static double sub(String num1, String num2) {
BigDecimal bd1 = new BigDecimal(num1);
BigDecimal bd2 = new BigDecimal(num2);
return bd1.subtract(bd2).doubleValue();
}
public static double mul(String num1, String num2) {
BigDecimal bd1 = new BigDecimal(num1);
BigDecimal bd2 = new BigDecimal(num2);
return bd1.multiply(bd2).doubleValue();
}
public static double div(String num1, String num2, int scale) {
BigDecimal bd1 = new BigDecimal(num1);
BigDecimal bd2 = new BigDecimal(num2);
return bd1.divide(bd2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
public static double round(double num, int scale) {
BigDecimal bd1 = new BigDecimal(num);
BigDecimal bd2 = new BigDecimal(1);
return bd1.divide(bd2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
public class BigDecimalDemo {
public static void main(String[] args) {
String num1 = "12345.07891";
String num2 = "3333.5101";
System.out.println("加法操作:" + MyMath.round(MyMath.add(num1, num2), 2));
System.out.println("减法操作:" + MyMath.round(MyMath.sub(num1, num2), 2));
System.out.println("乘法操作:" + MyMath.round(MyMath.mul(num1, num2), 2));
System.out.println("除法操作:" + (MyMath.div(num1, num2, 2)));
}
}
BigDecimal a = new BigDecimal(0.5);
BigDecimal b = new BigDecimal(0.2);
BigDecimal c = a.divide(b,BigDecimal.ROUND_HALF_EVEN);
System.out.println(c);
Returns a BigDecimal whose value is (this / divisor), and whose preferred scale is (this.scale() - divisor.scale()); if the exact quotient cannot be represented (because it has a non-terminating decimal expansion) an ArithmeticException is thrown.