如图
public class Test {
public static void main(String[] args) {
// BigDecimal是处理double精度问题的对象
BigDecimal b1 = new BigDecimal("10");
BigDecimal b2 = new BigDecimal("10");
// 结果
BigDecimal result = null;
// 加
result = b1add(b2);
Systemoutprintln(resultdoubleValue());
// 减
result = b1subtract(b2);
Systemoutprintln(resultdoubleValue());
// 乘
result = b1multiply(b2);
Systemoutprintln(resultdoubleValue());
// 除
result = b1divide(b2);
Systemoutprintln(resultdoubleValue());
}
}
200
00
1000
10
public class Calculator {
int num1=0;//第一个加数
int num2=0;//第二个加数
int num3=0;//第三个加数
public void jia(){
num3=num1+num2;
Systemoutprintln("加:"+num3);
}
public void jian(){
num3=num1-num2;
Systemoutprintln("减:"+num3);
}
public void cheng(){
num3=num1num2;
Systemoutprintln("乘:"+num3);
}
public void chu(){
num3=num1/num2;
Systemoutprintln("除:"+num3);
}
}
第二个类:
public class test {
public static void main(String[] args) {
Calculator show=new Calculator();
Scanner input=new Scanner (Systemin);
Systemoutprintln("请输入第一个加数:");
shownum1=inputnextInt();
Systemoutprintln("请输入第二个加数:");
shownum2=inputnextInt();
showjia();
showjian();
showcheng();
showchu();//调用
}
}
1、// 加;
1)BigDecimal add = maadd(mb);
2)Systemoutprintln("加法:"+add);
2、// 减;
1)BigDecimal sub = masubtract(mb);
2)Systemoutprintln("减法:"+sub);
3、// 乘;
1)BigDecimal mul = mbmultiply(md);
2)Systemoutprintln("乘法:"+mul);
4、// 除
1)BigDecimal div = mbdivide(md);
2)Systemoutprintln("除法:"+div);
3)Systemoutprintln("===================");
4)mc = mcsetScale(2, BigDecimalROUND_HALF_UP);
5)Systemoutprintln("四舍五入:"+mc);
6)Systemoutprintln("===================");
7)mc = mcnegate();
8)Systemoutprintln("负数:"+mc);
9)Systemoutprintln("===================");
BigDecimal fraction1 = new BigDecimal(1/2); //我这里用的1/2BigDecimal fraction2 = new BigDecimal(1/4); //我这里用的1/4
fraction1add(fraction2); //加
fraction1sub(fraction2);//减
fraction1mulity(fraction2);//乘
fraction1divide(fraction2);//除
具体可以再看看BigDecimal的api文档,对于除不尽的数,可以设置精度。另外我的方法是凭印象写的,不知有没有错,还请参考api文档。
public class ParamDemo {public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
mapput("+", 1);
mapput("-", 1);
mapput("", 2);
mapput("/", 2);
Scanner scanner = new Scanner(Systemin);
int num1 = scannernextInt();
int num2 = scannernextInt();
int num3 = scannernextInt();
String op1 = scannernext();
String op2 = scannernext();
//此时证明第一个 *** 作符优先级大于第二个 *** 作符
if (mapget(op1) - mapget(op2) >= 0) {
int tmpNumber = operateNum(op1, num1, num2);
Systemoutprintln(operateNum(op2, tmpNumber, num3));
} else {
int tmpNumber = operateNum(op2, num2, num3);
Systemoutprintln(operateNum(op1, num1, tmpNumber));
}
scannerclose();
}
private static int operateNum(String operator, int num1, int num2) {
switch (operator) {
case "+":
return num1 + num2;
case "-":
return num1 - num2;
case "":
return num1 num2;
case "/":
return num1 / num2;
default:
return 0;
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)