我在我的Android应用程序中调用此方法:
public void Subtraction() {
text.setText("");
long total = num1 - num2;
text.setText(Long.toString(total));
}
现在,当我计算15-20时,我得不到-5,而是得到0。
num1和num2被声明为long。
有谁知道为什么?
谢谢你的时间!
编辑:我在文本字段中从用户输入获取num1和num2:
// Subtraction case
case R.id.buttonsubtract:
division = false;
addition = false;
multiply = false;
num1 = Long.parseLong(text.getText().toString());
num2 = Long.parseLong(text.getText().toString());
text.setText(text.getText() + "-");
subtraction = true;
break;
答案 0 :(得分:2)
你的价值为0的原因是因为num1和amp; num2是从同一文本字段中提取的,text
'因此它们具有相同的价值。
所以说如果用户在EditText字段text
中输入了值4,那么num1& num2将具有相同的值。
如果您有单独的文本字段供用户输入num1& num2,那么你应该从那些单独的EditText字段中读取值。
如果你只想使用一个文本字段,有多种方法可以处理它,一种简单的方法如下(我假设你只处理长值):
1)初始化一个类变量long leftOperand = 0; 2)当用户点击+,_,*,/然后将变量的值放在变量leftOperand中的文本字段中。
leftOperand = Long.parseLong(text.getText().toString());
还存储用户想要执行的操作(例如以枚举的形式)。
3)现在当用户按下' ='然后只计算价值 long newValue = Long.parseLong(text.getText()。toString());
long output = leftOperand (operation) newValue ;