使用edittext輸出為什么結(jié)果有問題?
private RadioButton radio1,radio2;
private Button button;
private TextView text;
??? private RadioGroup rg;
??? private EditText edit;
??? private String str,cal;
??? private double mon;
??? private int choose;
???
??? @Override
??? protected void onCreate(Bundle savedInstanceState) {
??????? super.onCreate(savedInstanceState);
??????? setContentView(R.layout.activity_main);
??????? radio1 = (RadioButton) findViewById(R.id.r1);
??????? radio2 = (RadioButton) findViewById(R.id.r2);
??????? button = (Button) findViewById(R.id.but);
??????? rg = (RadioGroup) findViewById(R.id.rg);
??????? text = (TextView) findViewById(R.id.tv);
??????? edit = (EditText) findViewById(R.id.et);
???????
???????
??????? rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(R.id.r1==checkedId){
Toast tot1=Toast.makeText(MainActivity.this, "請輸入vip顧客金額", Toast.LENGTH_SHORT);
tot1.setGravity(Gravity.CENTER, 0, 0);
tot1.show();
choose = 1;
cal = radio1.getText().toString();
???
}else if(R.id.r2==checkedId){
str=edit.getText().toString();
Toast tot = Toast.makeText(MainActivity.this, "請輸入普通顧客金額", Toast.LENGTH_SHORT);
tot.setGravity(Gravity.CENTER, 0, 0);
tot.show();
choose = 2;
cal = radio2.getText().toString();
}
}
});
??????? button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
str = edit.getText().toString();
if(choose == 1){
mon = Double.parseDouble(str)*0.8;
}else if(choose == 2){
mon = Double.parseDouble(str);
}
text.setText("類別:"+ cal +"顧客??? "+" 金額:"+mon);
}
});
??? }
???
2017-01-10
因為double是浮點型啊,所以后來會以科學(xué)計數(shù)法的方式顯示,你可以設(shè)置格式
DecimalFormat decimalFormat = new DecimalFormat("#,####.00");//格式化設(shè)置 ? ? ? ? ?
text.setText("類別:"+ cal +"顧客 ? ?"+" 金額:"+decimalFormat.format(mon));
這樣就不會以科學(xué)計數(shù)法的方式顯示了,但是,如果輸入數(shù)值過大,還是會丟失精度
請看下面
這個精度還是對的,但是如果再加大,就會丟失了
這張圖我有多輸入了一個1,結(jié)果金額中個位為0,丟失了精度