2011-08-06 15 views
1

私は、ユーザーがEditTextビューに入力する値に簡単な数学関数を実行する簡単なプログラムを作成しています。最初の2つのEditTextビューには整数が含まれ、最後に小数点がある可能性があるので、答えは10進数でなければならないので、と(vis)を2倍に設定する必要があります。すべてが正常に動作しています、答えはちょうど多くの小数点以下の桁です!ここでtoString、androidでdoubleを使用する小数点以下の桁数

は私のコードです:

public void onClick(View v) { 
      String a,b,t; 
      double vis; 

      EditText txtbox1 = (EditText)findViewById(R.id.A); 
       EditText txtbox2 = (EditText)findViewById(R.id.B); 
       EditText txtbox3 = (EditText)findViewById(R.id.t); 
       TextView tv = (TextView) findViewById(R.id.Answer); 

      a = txtbox1.getText().toString(); 
      b = txtbox2.getText().toString(); 
      t = txtbox3.getText().toString(); 

      vis = ((Integer.parseInt(a)*1) + (Integer.parseInt(b)*2))/  (Double.parseDouble(t)); 
      tv.setText(double.toString(vis));  
    } 
} 

本当にありがとうございました!

答えて

1

さらに制御するには、BigDecimal.round()を使用してください。必要な精度と丸め規則(.5は切り上げ、5は切り捨てなど)でMathContextを設定することができます。

double vis = 21.23456; 

tv.setText(new BigDecimal(vis).round(new MathContext(6, RoundingMode.HALF_UP)).toString()); 
2

回答が遅すぎると思いますが、将来のために役立つかもしれません。

我々はdouble番号を持っていると我々は4つの小数点値を取得する必要がある場合は、我々は10000でdoubleを掛け、そしてintegerdouble値をキャストして、再度doubleに逆転し、10000

で桁を分割することができます
関連する問題