【发布时间】:2013-04-11 19:48:34
【问题描述】:
我正在为 Android 创建一个计算器,到目前为止,它看起来已经完成了……问题是答案并不精确,加法、减法、乘法工作正常,因为通常不需要小数。当它出现时将答案四舍五入到最接近的整数,而不是以十进制显示答案...所以我更改了 TextView 类型以显示小数并使用 float 而不是 int 作为包含答案的变量。结果是我得到了一个以“.00”结尾的四舍五入整数:/ 请帮忙! 我的代码: MainActivity.java:
package in.rohanbojja.basiccalculator;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void add( View view){
EditText n1 = (EditText) findViewById(R.id.editText1);
EditText n2 = (EditText) findViewById(R.id.editText3);
TextView res = (TextView) findViewById(R.id.textView1);
String sn1 = n1.getText().toString();
String sn2 = n2.getText().toString();
String sres;
int in1 = Integer.parseInt(sn1);
int in2 = Integer.parseInt(sn2);
float ires;
ires = in1 + in2;
sres = Float.toString(ires);
res.setText(sres);
}
public void sub( View view ){
EditText n1 = (EditText) findViewById(R.id.editText1);
EditText n2 = (EditText) findViewById(R.id.editText3);
TextView res = (TextView) findViewById(R.id.textView1);
String sn1 = n1.getText().toString();
String sn2 = n2.getText().toString();
String sres;
int in1 = Integer.parseInt(sn1);
int in2 = Integer.parseInt(sn2);
float ires;
ires = in1 - in2;
sres = Float.toString(ires);
res.setText(sres);
}
public void mul( View view ){
EditText n1 = (EditText) findViewById(R.id.editText1);
EditText n2 = (EditText) findViewById(R.id.editText3);
TextView res = (TextView) findViewById(R.id.textView1);
String sn1 = n1.getText().toString();
String sn2 = n2.getText().toString();
String sres;
int in1 = Integer.parseInt(sn1);
int in2 = Integer.parseInt(sn2);
float ires;
ires = in1 * in2;
sres = Float.toString(ires);
res.setText(sres);
}
public void clr( View view ){
EditText n1 = (EditText) findViewById(R.id.editText1);
EditText n2 = (EditText) findViewById(R.id.editText3);
TextView res = (TextView) findViewById(R.id.textView1);
n1.setText("");
n2.setText("");
res.setText("Result");
}
public void div( View view){
EditText n1 = (EditText) findViewById(R.id.editText1);
EditText n2 = (EditText) findViewById(R.id.editText3);
TextView res = (TextView) findViewById(R.id.textView1);
String sn1 = n1.getText().toString();
String sn2 = n2.getText().toString();
String sres;
int in1 = Integer.parseInt(sn1);
int in2 = Integer.parseInt(sn2);
float ires;
ires = in1/in2;
sres = Float.toString(ires);
res.setText(sres);
}
}
【问题讨论】:
-
您需要阅读 Java 中的数字类型和数学知识。
标签: java android main-activity