2014-04-06 25 views
2

例如,我的號碼是137.99999999999。 如何將其格式化爲像137.9這樣的一位小數位?如何縮短Java中的長十進制數?

另一個例子是4.7777777777 4.7

注:我不想舍數在所有。我只想將它截斷爲一位小數。

+1

,你發現了什麼?我很難相信網上沒有太多例子。 –

+2

'3.19'呢?它會成爲'3.2'還是'3.1'? – Maroun

+0

我找不到任何有用的東西。我試圖在谷歌和本網站上尋找它。 – Gretta

回答

3

使用NumberFormat如果您需要更多特殊的辦法,以4.77爲4.7顯示,而不是4.8(這是RoundingMode.DOWN):

NumberFormat format = NumberFormat.getInstance(); 
    format.setRoundingMode(RoundingMode.DOWN); 
    format.setMaximumFractionDigits(2); 
    System.out.println(format.format(4.7777)); 

輸出是4.77

+0

然後可以使用NumberFormat和RoundingMode.DOWN。 – h22

0

你可以在這裏找到一個複雜的答案:Round a double to 2 decimal places

調整它的小數點後1位,你很好去。

或者,另一種簡單的方法來截斷至小數點後一位數是:

String numberString = "137.99999999999"; 
int indexOfDecimal = numberString.indexOf('.'); 
Double truncatedNumber = new Double(numberString.subString(0,indexOfDecimal+2)); 
當你搜索
+0

'java.lang.Long'中沒有將'double'作爲參數的構造函數。 –

+0

道歉!編輯它 –