Java 我能';在我的Android计算器中,我得不到正确的答案
我已经按照步骤创建了我的计算器应用程序,当我按下100+6%时,它应该是106.0,但它告诉我最终的计算结果是100.06,我错过了什么吗?多谢各位Java 我能';在我的Android计算器中,我得不到正确的答案,java,android,calculator,Java,Android,Calculator,我已经按照步骤创建了我的计算器应用程序,当我按下100+6%时,它应该是106.0,但它告诉我最终的计算结果是100.06,我错过了什么吗?多谢各位 Equal.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { process = Callayout.getText().toString();
Equal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
process = Callayout.getText().toString();
process = process.replaceAll("%","/100");
process = process.replaceAll("x","*");
process = process.replaceAll("(6%)","*0.06");
Context rhino = Context.enter();
rhino.setOptimizationLevel(-1);
String finalans = "";
try{
Scriptable scriptable = rhino.initStandardObjects();
finalans = rhino.evaluateString(scriptable,process,"Javascript",1,null).toString();
}catch(Exception e){
finalans = "0";
}
Callayout.setText(finalans);
}
});
/
运算符优先于+
。您输入的表达式等于100+(6/100)
。另外,您不需要这一行:process=process.replaceAll(“(6%)”,“*0.06”)代码>,因为所有的%
已经被替换。您好,欢迎来到StackOverflow(SO)。查看您的代码,您的行process=process.replaceAll(“%”,“/100”)
表明您看到的结果(100.06)是正确的,因为您输入的是100+(6/100)
。为什么你希望看到106.0作为你的答案?非常感谢,如果我想做100+6%=106,我应该怎么做?如果我想做100+(100*(6/100)),我应该如何编辑方程式?