2013-10-01 74 views
0

我已經使用了十進制格式類來設置editText變量爲我的格式變量mark1Format。但我不知道如何設置新的格式變量到這個我的意思是設置格式變量R.id.mark1Format。任何人都有解決方案嗎?如何將雙變量格式化爲兩位小數?

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.result); 
     result1 = (EditText)findViewById(R.id.mark1); 
     result2 = (EditText)findViewById(R.id.mark2); 


     Intent intent = getIntent(); 
     double mark1 = intent.getDoubleExtra("number1", 0); 
     double mark2 = intent.getDoubleExtra("number2", 0); 

     //format to two decimal places 
     DecimalFormat df = new DecimalFormat("#.00"); 
     String mark1Format = df.format(mark1); 
     String mark2Format = df.format(mark2); 


     //set the variables on EditTexts like this : 
     result1 = (EditText)findViewById(R.id.mark1); 
     result2 = (EditText)findViewById(R.id.mark2); 
     result1.setText(mark1+""); 
     result2.setText(mark2+""); 
    } 
+0

我的頭頂作品沒有理由'的DecimalFormat(「# 。##「)'應該可以工作 –

+0

是的,但我不知道如何將editText結果設置爲我的格式化結果..任何想法? – user2815899

+0

'result1.setText(df.format(mark1));' –

回答

0

該函數將返回只有儘可能多的小數點的雙重只要你想......

public static double round(double value, int places) { 
    if (places < 0){ 
     return value; 
    } 
    BigDecimal bd = new BigDecimal(value); 
    bd = bd.setScale(places, BigDecimal.ROUND_HALF_UP); 
    return bd.doubleValue(); 
} 

享受 編輯

這對我來說完美的作品...嘗試這樣做: 首先不需要初始化result1和result2兩次...一次就足夠了... 其次嘗試使用綁定來獲得你的雙打:

Intent intent = new Intent(); 
intent = getIntent(); 
Bundle bundle = intent.getExtras(); 
mark1= bundle.getDouble("value"); 

,然後你只需要調用

result1.setText(round(mark1,2)); 

還有就是爲什麼它不應該工作......這個功能在我的程序

+0

謝謝,我將如何在我的代碼中實現這個?我正在猜測'圓(mark1,2);'對嗎? – user2815899

+0

你猜對了先生.... :) –

+0

那還沒有工作,仍然得到約11位小數位。任何想法? – user2815899

相關問題