一个小的计算机类,
代码如下:
public class Calculator{
public static void main(String[] args){
double result = calculate(args[0],args[1],args[2]);
System.out.println("计算结果为" + result);
}
public static double calculate(String operator1,String operator2,String operator3){
double result = 0;
switch(operator2.charAt(0)){
case '+': result = Double.valueOf(operator1).doubleValue() + Double.valueOf(operator3).doubleValue(); break;
case '-': result = Double.valueOf(operator1).doubleValue() - Double.valueOf(operator3).doubleValue(); break;
case '*': result = Double.valueOf(operator1).doubleValue() * Double.valueOf(operator3).doubleValue(); break;
case '/': result = Double.valueOf(operator1).doubleValue() / Double.valueOf(operator3).doubleValue(); break;
}
return result;
}
}
为什么当是‘*’的时候得不到正确结果?结果为0。当为加减除的时候结果正确。运行环境为JCREATOR。
代码如下:
public class Calculator{
public static void main(String[] args){
double result = calculate(args[0],args[1],args[2]);
System.out.println("计算结果为" + result);
}
public static double calculate(String operator1,String operator2,String operator3){
double result = 0;
switch(operator2.charAt(0)){
case '+': result = Double.valueOf(operator1).doubleValue() + Double.valueOf(operator3).doubleValue(); break;
case '-': result = Double.valueOf(operator1).doubleValue() - Double.valueOf(operator3).doubleValue(); break;
case '*': result = Double.valueOf(operator1).doubleValue() * Double.valueOf(operator3).doubleValue(); break;
case '/': result = Double.valueOf(operator1).doubleValue() / Double.valueOf(operator3).doubleValue(); break;
}
return result;
}
}
为什么当是‘*’的时候得不到正确结果?结果为0。当为加减除的时候结果正确。运行环境为JCREATOR。
java Calculator 1 "*" 2
为每个参数加上双引号,这样就按本身的字符串传给应用程序