2013-01-22 93 views
-4

正在編寫一個android代碼,其中的文本視圖正由我的java類中的計算%填充。Android:使用INTEGER填充TextView

因爲我不得不計算%,所以我的最終變量(calcPerc)是一個雙重類型的變量。它不會將TextText放入我的TextView中。 請幫忙。

代碼

int totDiff = (totalMA - totalIA); 
    double beforeperc = ((double)totDiff/(double)totalIA); 
    calPerc = ((double)beforeperc*100); 

    percentage = (TextView)findViewById(R.id.populatePercentage); 
    percentage.setText(calPerc); 

我得到的錯誤是

在類型的TextView的方法的setText(CharSequence的)不適用於參數(雙)

而且,還有一個後續問題。變量「calPerc」,因爲它是double,所以在小數點後面給我無限數字。我如何將它舍入到2位小數?

+0

使用Integer.toString(calPerc)在TextView中顯示int值 –

+0

謝謝!這工作。你能告訴我如何限制小數只有2? – Jasma

+0

簡單的谷歌搜索會讓你回答。你必須使用String.Value Of或者只使用上面提到的Krishna。論壇鼓勵尋找現有的答案。 – VendettaDroid

回答

2

這應該爲當前語言環境正確格式化顯示的值(最多2個小數);

NumberFormat twoDecimals = NumberFormat.getInstance(); 
twoDecimals.setMaximumFractionDigits(2); 
percentage.setText(twoDecimals.format(calPerc)); 
+0

感謝您回答任何諷刺意見。我對Android很陌生,這有所幫助。 – Jasma

+0

@Jasma很高興能有所幫助:) –

0

爲了能夠更好地控制格式(如小數點後限制的位數),你可以使用String.format()

percentage.setText(String.format("%.2f %%", calPerc)); 

be wary of the default locale

+0

謝謝!這工作。你能告訴我如何限制小數只有2? – Jasma