2012-10-02 164 views

回答

6

不要做int除法,因爲這總是會導致截斷的int。相反,你的部門至少使用一個雙重值。

double num = 4.0/3.0; 

然後,當你想要顯示它作爲一個字符串,格式化輸出,所以你可以選擇你的小數位:

// one way to do it 
// %.3f is for a floating number with 3 digits to the right of the decimal 
// %n is for new line 
System.out.printf(%.3f%n, num); 

Another: 
DecimalFormat decimalFormat = new DecimalFormat("0.000"); 
System.out.println(decimalFormat.format(num)); 
+0

OMG !!!!!!!!!!!!!!!!!!!!謝謝T_T – Jcorretjer

+1

嗯,你只需要有一個是雙(如4.0/3或4/3.0),但都不能傷害:) +1 –

+1

@亞歷克斯:是的,或'(雙)4/3'會工作也很好。 –

0

你也應該使用的String.format(%1.2F,yourDouble)格式化您小數

+3

是的,這段代碼將打印雙數據,但檢查'int/int = int',所以'4/3'將是'1',你應該使用'4.0/3.0'來獲得'1.333 ...' –

0

試試這個..

double value= 255.956666; 

BigDecimal bd = new BigDecimal(value).setScale(2, RoundingMode.HALF_UP); 
System.out.println("value="+bd);