課程
/移動開發(fā)
/Android
/Android攻城獅的第一門課(入門篇)
有個問題 ?他在取整那加了判斷是不是除號 ?那么像9/3 這種兩個整數 相除結果為 整數的時候怎么辦
2017-02-18
源自:Android攻城獅的第一門課(入門篇) 21-6
正在回答
有點聽不明白了十進制數1231*10 2*10 3=123八進制數01231*8 2*8 3=83十六進制數0x1231*16 2*16 3=291
66666
package?com.example.calculatordemo; import?android.R.integer; import?android.app.Activity; import?android.os.Bundle; import?android.view.View; import?android.view.View.OnClickListener; import?android.widget.Button; import?android.widget.EditText; import?android.widget.Toast; public?class?MainActivity?extends?Activity?implements?OnClickListener?{ Button?btn_0; Button?btn_1; Button?btn_2; Button?btn_3; Button?btn_4; Button?btn_5; Button?btn_6; Button?btn_7; Button?btn_8; Button?btn_9; Button?btn_point;//?小數點 Button?btn_divide;//?除以 Button?btn_multiply;//?乘以 Button?btn_minus;//?減去 Button?btn_pluse;//?加 Button?btn_equal;//?等于 Button?btn_clear; Button?btn_del; EditText?et_showview; boolean?needclear; @Override protected?void?onCreate(Bundle?savedInstanceState)?{ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_0?=?(Button)?findViewById(R.id.btn_0); btn_1?=?(Button)?findViewById(R.id.btn_1); btn_2?=?(Button)?findViewById(R.id.btn_2); btn_3?=?(Button)?findViewById(R.id.btn_3); btn_4?=?(Button)?findViewById(R.id.btn_4); btn_5?=?(Button)?findViewById(R.id.btn_5); btn_6?=?(Button)?findViewById(R.id.btn_6); btn_7?=?(Button)?findViewById(R.id.btn_7); btn_8?=?(Button)?findViewById(R.id.btn_8); btn_9?=?(Button)?findViewById(R.id.btn_9); btn_point?=?(Button)?findViewById(R.id.btn_point);//?小數點 btn_divide?=?(Button)?findViewById(R.id.btn_divide);//?除以 btn_multiply?=?(Button)?findViewById(R.id.btn_multiply);//?乘以 btn_minus?=?(Button)?findViewById(R.id.btn_minus);//?減去 btn_pluse?=?(Button)?findViewById(R.id.btn_pluse);//?加 btn_equal?=?(Button)?findViewById(R.id.btn_equal);//?等于 btn_clear?=?(Button)?findViewById(R.id.btn_clear); btn_del?=?(Button)?findViewById(R.id.btn_del); et_showview?=?(EditText)?findViewById(R.id.et_showview); btn_0.setOnClickListener(this); btn_1.setOnClickListener(this); btn_2.setOnClickListener(this); btn_3.setOnClickListener(this); btn_4.setOnClickListener(this); btn_5.setOnClickListener(this); btn_6.setOnClickListener(this); btn_7.setOnClickListener(this); btn_8.setOnClickListener(this); btn_9.setOnClickListener(this); btn_point.setOnClickListener(this); btn_divide.setOnClickListener(this); btn_multiply.setOnClickListener(this); btn_minus.setOnClickListener(this); btn_pluse.setOnClickListener(this); btn_equal.setOnClickListener(this); btn_clear.setOnClickListener(this); btn_del.setOnClickListener(this); } @Override public?void?onClick(View?v)?{ //?TODO?Auto-generated?method?stub String?str?=?et_showview.getText().toString(); switch?(v.getId())?{ case?R.id.btn_0: case?R.id.btn_1: case?R.id.btn_2: case?R.id.btn_3: case?R.id.btn_4: case?R.id.btn_5: case?R.id.btn_6: case?R.id.btn_7: case?R.id.btn_8: case?R.id.btn_9: case?R.id.btn_point: if(needclear&&!str.contains("+")&&!str.contains("-")&&!str.contains("×")&&!str.contains("÷")){ str?=?""; et_showview.setText(""); needclear?=?false; } et_showview.setText(str?+?((Button)?v).getText()); break; case?R.id.btn_pluse: case?R.id.btn_minus: case?R.id.btn_multiply: case?R.id.btn_divide: et_showview.setText(str?+"?"+((Button)?v).getText()+"?"); break; case?R.id.btn_equal: getResult(); break; case?R.id.btn_del: if?(str?!=?null?&&?!str.equals(""))?{ if(str.substring(str.length()-1,str.length()).equals("?")){ et_showview.setText(str.substring(0,?str.length()?-?3)); }else{ et_showview.setText(str.substring(0,?str.length()?-?1)); } } break; case?R.id.btn_clear: et_showview.setText(""); break; } } /** ?*?獲取計算結果 ?*/ private?void?getResult()?{ needclear?=?true; boolean?pointT?=?false; String?exp?=?et_showview.getText().toString(); double?r?=?0; if(!exp.contains("?")||exp.substring(exp.length()-1,?exp.length()).equals("?")||exp.contains("??")){ et_showview.setText(exp+""); ???? Toast.makeText(MainActivity.this,?"計算的數據有錯",?2).show(); return; } String?space[]?=?exp.split("?");?//通過空格獲取每個數據 Double?arg1?=?Double.parseDouble(space[0]);//得到第一個數據,并且轉化為Double類型 if(space[0].contains(".")){ pointT?=?true; } for?(int?i?=?1;i<space.length;)?{ if(space[i+1].contains(".")){ pointT?=?true; } String?op?=?space[i]; ????????double?arg2?=?Double.parseDouble(space[i+1]); if(op.equals("+")){ ???????? ?r?=?arg1?+?arg2; ????????}else?if(op.equals("-")){ ???????? r?=?arg1?-?arg2; ????????}else?if(op.equals("×")){ ???????? ?r?=?arg1?*?arg2; ????????}else?if(op.equals("÷")){ ???????? ?if?(arg2?==?0) ?????????????{ ????????????????r=0; ?????????????} ?????????????else ?????????????{ ?????????????????r?=?arg1?/?arg2; ?????????????} ????????}? arg1=r; i=i+2; } if(!pointT){ int?result?=?(int)r; et_showview.setText(result+""); }else{ et_showview.setText(r+""); } } // // /*** // ?*?@param?exp // ?*????????????算數表達式 // ?*?@return?根據表達式返回結果 // ?*/ // private?String?getRs(String?exp)?{ // Interpreter?bsh?=?new?Interpreter(); // Number?result?=?null; // try?{ // exp?=?filterExp(exp); // result?=?(Number)?bsh.eval(exp); // }?catch?(EvalError?e)?{ // e.printStackTrace(); // return?"0"; // } // return?result.doubleValue()?+?""; // } // // /** // ?*?@param?exp // ?*????????????算數表達式 // ?*?@return?因為計算過程中,全程需要有小數參與. // ?*/ // private?String?filterExp(String?exp)?{ // String?num[]?=?exp.split(""); // String?temp?=?null; // double?dtemp?=?0?; // String?str_temp=""; // for?(int?i?=?0;?i?<?num.length;?i++)?{ // temp?=?num[i]; // // if?(temp.equals("+")?||?temp.equals("-")?||?temp.equals("×") // ||?temp.equals("÷"))?{ // if(dtemp==0){ // dtemp=Double.parseDouble(str_temp); // } // // str_temp=""; // }else{ // str_temp=str_temp+temp; // } // } // // int?begin?=?0,?end?=?0; // for?(int?i?=?1;?i?<?num.length;?i++)?{ // temp?=?num[i]; // if?(temp.matches("[+-/()*]"))?{ // if?(temp.equals(".")) // continue; // end?=?i?-?1; // temp?=?exp.substring(begin,?end); // if?(temp.trim().length()?>?0?&&?temp.indexOf(".")?<?0) // num[i?-?1]?=?num[i?-?1]?+?".0"; // begin?=?end?+?1; // } // } // return?Arrays.toString(num).replaceAll("[\\[\\],?]",?""); // } }
基本bug處理完了
你可以自己寫一個格式化結果的方法
舉報
想快速掌握Android應用開發(fā)基礎,選擇學習這門課程就對了。
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2022-03-23
有點聽不明白了十進制數1231*10 2*10 3=123八進制數01231*8 2*8 3=83十六進制數0x1231*16 2*16 3=291
2017-03-02
66666
2017-03-01
基本bug處理完了
2017-02-19
你可以自己寫一個格式化結果的方法