break; default:
answerd = Double.parseDouble(textAnswer.getText()); }
textAnswer.setText(\ prekey = key = 2; }
//为'/'操作时
if (temp == buttonDiv) { switch (prekey) {
case 0:
answerd += Double.parseDouble(textAnswer.getText()); break; case 1:
answerd -= Double.parseDouble(textAnswer.getText()); break; case 2:
answerd *= Double.parseDouble(textAnswer.getText()); break; case 3:
if (Double.parseDouble(textAnswer.getText()) == 0) { textAnswer.setText(\除数不能为零\ clickable = false; } else
answerd /= Double.parseDouble(textAnswer.getText()); break; default:
answerd = Double.parseDouble(textAnswer.getText()); }
textAnswer.setText(\ prekey = key = 3; } }
//当输入'='操作时
if (temp == buttonEqual && clickable == true) { //如果连续按'=',则进行连续运算 if (prekey == 5) {
if (key == 0)//最后一次是加法计算,所以连续加 {
answerd += vard;
textAnswer.setText(df.format(answerd));
}
if (key == 1) {
answerd -= vard;
textAnswer.setText(df.format(answerd)); }
if (key == 2) {
answerd *= vard;
textAnswer.setText(df.format(answerd)); }
if (key == 3) {
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText(\除数不能为零\ clickable = false; //禁用键盘 } else {
answerd /= vard;
textAnswer.setText(df.format(answerd)); } } }
else {
vard = Double.parseDouble(textAnswer.getText());//vard为最后一次输入的数 if (key == 0) {
answerd += Double.parseDouble(textAnswer.getText());// 计算结果 textAnswer.setText(df.format(answerd)); //answerd格式化 }
if (key == 1) {
answerd -= Double.parseDouble(textAnswer.getText()); textAnswer.setText(df.format(answerd)); }
if (key == 2) {
answerd *= Double.parseDouble(textAnswer.getText());
textAnswer.setText(df.format(answerd)); }
if (key == 3) {
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText(\除数不能为零\ clickable = false; } else {
answerd /= Double.parseDouble(textAnswer.getText()); textAnswer.setText(df.format(answerd)); } } }
prekey = 5; }
//'%'操作,对第二个操作数除以100即可
if (temp == buttonMod && clickable == true) {
if (answerd == 0)//为零时仍为零 {
String s = textAnswer.getText(); textAnswer.setText(s); } else {
//检查有无小数点 boolean isDot = false;
for (int i = 0; i < textAnswer.getText().length(); i++) if ('.' == textAnswer.getText().charAt(i)) {
isDot = true; break; }
//如果有‘.‘是double数,除100 if (isDot == true) {
double dtemp = Double.parseDouble(textAnswer.getText()); dtemp = dtemp / 100.0;
textAnswer.setText(Double.toString(dtemp)); } else
{
//如果是int数但能被100整除,则去掉末尾两个零
if (Integer.parseInt(textAnswer.getText()) % 100 == 0) {
int itemp = Integer.parseInt(textAnswer.getText()); itemp /= 100;
textAnswer.setText(Integer.toString(itemp)); }
//如果是int数,但不能被100整除,则按double数处理 else {
double dtemp = Double.parseDouble(textAnswer.getText()); dtemp = dtemp / 100.0;
textAnswer.setText(Double.toString(dtemp)); } } } }
//开根号运算
if (temp == buttonSqrt && clickable == true) {
String s = textAnswer.getText();
if (s.charAt(0) == '-') //判断是否为负数,即第一位为负数 {
textAnswer.setText(\负数不能开根号\ clickable = false; } else
textAnswer.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(textAnswer.getText())))); }
//倒数运算
if (temp == buttonDao && clickable == true) {
if (textAnswer.getText().charAt(0) == '0' && textAnswer.getText().length() == 1)//'0'为char类型要一致 {
textAnswer.setText(\零不能求倒数\ clickable = false; } else {
boolean isDec = true;
int i, j, k;
String s = Double.toString(1 / Double.parseDouble(textAnswer.getText())); for (i = 0; i < s.length(); i++) if (s.charAt(i) == '.') break;
for (j = i + 1; j < s.length(); j++) //小数点后有无数字 if (s.charAt(j) != '0') {
isDec = false; break; }
if (isDec == true) {
String stemp = \ for (k = 0; k < i; k++)
stemp += s.charAt(k); //取出整数部分
textAnswer.setText(stemp); //将stemp传给textAnswer } else
textAnswer.setText(s); } }
//按下'+/-'按钮时处理
if (temp == buttonAddAndSub && clickable == true) {
boolean isNumber = true;
String s = textAnswer.getText(); for (int i = 0; i < s.length(); i++)
if (! (s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' || s.charAt(i) == '-')) {
isNumber = false; break; }
if (isNumber == true)
{ //如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉
if (s.charAt(0) == '-') {
textAnswer.setText(\
for (int i = 1; i < s.length(); i++)//从符号后一位把s考到textAnswer中 {
char a = s.charAt(i);
textAnswer.setText(textAnswer.getText() + a); }