Android 如何输入小数?
我是Java Android开发的初学者。我使用的是EclipseSDK3.6.1版本。我想做一个简单的计算器。我有一个问题,如何输入小数? 这是我的代码:Android 如何输入小数?,android,input,numbers,fractions,Android,Input,Numbers,Fractions,我是Java Android开发的初学者。我使用的是EclipseSDK3.6.1版本。我想做一个简单的计算器。我有一个问题,如何输入小数? 这是我的代码: @Override public void onClick(View view) { switch (view.getId()) { case R.id.btnNum0Id: case R.id.btnNum1Id: case R.id.btnNum2Id: case R.id.bt
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnNum0Id:
case R.id.btnNum1Id:
case R.id.btnNum2Id:
case R.id.btnNum3Id:
case R.id.btnNum4Id:
case R.id.btnNum5Id:
case R.id.btnNum6Id:
case R.id.btnNum7Id:
case R.id.btnNum8Id:
case R.id.btnNum9Id:
String inDigit = ((Button)view).getText().toString();
if (inStr.equals("0")) {
inStr = inDigit;
} else {
inStr += inDigit;
}
tekstas.setText(inStr);
if (Operator == '=') {
rezult = 0;
Operator = ' ';
}
break;
case R.id.btnAddId:
aritmetika();
Operator = '+';
break;
case R.id.btnSubId:
aritmetika();
Operator = '-';
break;
case R.id.btnMulId:
aritmetika();
Operator = '*';
break;
case R.id.btnDivId:
aritmetika();
Operator = '/';
break;
case R.id.btnSqrtId:
aritmetika();
Operator = 'a';
break;
case R.id.btnEqualId:
aritmetika();
Operator = '=';
break;
case R.id.dot:
aritmetika();
Operator = '.';
break;
case R.id.btnClearId:
rezult = 0;
inStr = "0";
Operator = ' ';
tekstas.setText("0");
break;
}
}
private void aritmetika() {
int inNum = Integer.parseInt(inStr);
if (Operator == ' ') {
rezult = inNum;
} else if (Operator == '+') {
rezult += inNum;
} else if (Operator == '-') {
rezult -= inNum;
} else if (Operator == '*') {
rezult *= inNum;
} else if (Operator == '/') {
rezult /= inNum;
} else if (Operator == 'a') {
rezult = (float)Math.sqrt(rezult);
} else if (Operator == '.') {
String rezult2 = inStr+'.';
//need fractional number
} else if (Operator == '=') {
// tolesnis veiksmas
}
tekstas.setText(String.valueOf(rezult));
}
}
我在想如何做一个分数 对于小数,可以使用
/
如3/4
或类似1.23
的十进制表示法。您是否面临任何具体问题
在投反对票后更新,以及更多相关描述:-p
您可以像使用其他按钮一样使用点(.)按钮。将
作为其文本
添加编辑文本中的所有内容,点击
=
按钮,将编辑文本中的所有内容作为字符串,首先将数学符号作为+,-,x,/
作为分隔符,并将值转换为后固定符号,将它们存储在一个数组中,然后进行计算。您可以将点处理与数字处理放在一起,而不是作为单独的运算符(将点视为数字的一部分)。如果使用double作为rezult的类型,则可以对带有数字和点的整个字符串执行parseDouble而不是parseInt
这种设计非常有限。您应该尝试创建一个简单的标记器和解析器来创建操作的解析树。这将是一次更有意义的体验。我不太确定你在问什么,你有什么特别的问题?我创建了一个键盘,上面有按钮“0、1、2、3、4、5、6、7、8、9”和数学运算符“+、-、/、*”和点按钮。“如果我想输入5.2,我必须按5、点、2。”。如何声明一个点按钮,如果我想用点输入5.2或其他数字。这是一个注释,不是答案。