2013-12-17 43 views
2

在這個項目中,我從double類型的計算到screen.But目前的計算是給14位十進制places.My問題是打印值,有沒有在Java中的設施來包裝輸出語句中,可以?指定小數的量例如round(mark1,2)如何將十進制輸出四捨五入?

enter image description here

它印目前的方法是這樣的:

double markOne = intent.getDoubleExtra("number1", 0); 
result1.setText(String.valueOf(markOne)+"mm"); 

是否有可能以包裹setText在Java方法或將我必須cr是否需要定製格式?有人可以通過我的代碼給我一個例子嗎?由於

回答

9

你可以使用十進制格式

DecimalFormat df = new DecimalFormat("#.##"); 
System.out.print(df.format(d)); 
+0

謝謝,我現在要測試像這樣:'DecimalFormat df = new DecimalFormat(「#。##」); result1.setText(將String.valueOf(df.format(markOne)+「MM」));' –

+0

這工作了魅力,我得到了很多的建議,令人費解的定製方法更早的時候,都是我所要做的就是使用'DecimalFormat' –

0

試試這個:

int decimalPlaces = 2; 
    markOne = double(int(markOne*Math.pow(10, decimalPlaces)))/Math.pow(10, decimalPlaces); 
+0

現在你只是幻想。 –

2

我認爲這是更好地使用BigDecimal的類型,而不是雙。 你可以做

BigDecimal myValue= new BigDecimal(12.3577); 
    myValue= myValue.setScale(2, BigDecimal.ROUND_HALF_UP); 

而且myvalue的將是12.36

我希望這將有助於

+0

+1使用四捨五入方式和BigDecimal的做適當的四捨五入 –

+0

@Pracede我如何應用此我的代碼,我有點糊塗了? –