###前提・実現したいこと
簡単な電卓を作りたいです。
public class Calculator extends AppCompatActivity { double sum = 0; double sum2 = 0; boolean plus = false; boolean minus = false; boolean multi = false; boolean divide = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); TextView textView = (TextView) findViewById(R.id.sum); textView.setText(String.valueOf(sum)); } public void p0(View view) { if (plus || minus || multi || divide) { sum = 0; } else { sum = sum * 10; } } public void p1(View view) { if (plus || minus || multi || divide) { sum = 1; } else { sum = sum * 10 + 1; } } public void p2(View view) { if (plus || minus || multi || divide) { sum = 2; } else { sum = sum * 10 + 2; } } public void p3(View view) { if (plus || minus || multi || divide) { sum = 3; } else { sum = sum * 10 + 3; } } public void p4(View view) { if (plus || minus || multi || divide) { sum = 4; } else { sum = sum * 10 + 4; } } public void p5(View view) { if (plus || minus || multi || divide) { sum = 5; } else { sum = sum * 10 + 5; } } public void p6(View view) { if (plus || minus || multi || divide) { sum = 6; } else { sum = sum * 10 + 6; } } public void p7(View view) { if (plus || minus || multi || divide) { sum = 7; } else { sum = sum * 10 + 7; } } public void p8(View view) { if (plus || minus || multi || divide) { sum = 8; } else { sum = sum * 10 + 8; } } public void p9(View view) { if (plus || minus || multi || divide) { sum = 9; } else { sum = sum * 10 + 9; } } public void plus(View view) { sum2 = sum; plus = true; minus = false; multi = false; divide = false; } public void minus(View view) { sum2 = sum; minus = true; plus = false; multi = false; divide = false; } public void multi(View view) { sum2 = sum; multi = true; plus = false; minus = false; divide = false; } public void divide(View view) { sum2 = sum; divide = true; plus = false; minus = false; multi = false; } public void equal(View view) { if (plus) { sum = sum + sum2; plus = false; sum2 = 0; } if (minus) { sum = sum - sum2; minus = false; sum2 = 0; } if (multi) { sum = sum * sum2; multi = false; sum2 = 0; } if (divide) { sum = sum / sum2; divide = false; sum2 = 0; } } public void c(View view) { sum = 0; sum2 = 0; } }
メソッドのp0~9が数字のボタンを押したときの処理。plus,minus,multi,divideが四則演算の処理。equalが=を押したときの処理となっています。
###発生している問題・エラーメッセージ
困っていることは二つで、 まず一つは電卓によくある一桁だけ削除するボタンの実装です。 もう一つが小数点の実装です。今は10をかけてから1の位を足すやり方をしているのですが、小数点になるとそれが通用しなくなってしまいます。今のやり方をすべて見直す必要があるのでしょうか? 1つ目の問題は今のやり方でいくなら1の位の数字を引いて10で割ればとりあえずは実装できそうですが1の位のチェックをしなければいけないという点がありもっと良い方法があるなら教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/27 08:00