2012-08-08 58 views
0

下面小數如何截斷小數前的數字?

NumberFormat blah= new DecimalFormat("#.##"); 

後代碼截斷數,但我想從其中存在數前

0000000000000.00 -> 0.00 
00000100000.00 -> 100000.00 
000000175000.00 -> 175000.00 
+0

您是否將「0000000000000.00」作爲字符串? – 2012-08-08 06:46:41

+1

'Double.parseDouble(「000000.00」)' – 2012-08-08 06:46:57

+0

Dou表示您想將這些字符串解析爲浮點數? – ekholm 2012-08-08 06:47:02

回答

1
BigDecimal myNumber = new BigDecimal("00000000175000.000000"); 
BigDecimal truncatedNumber = myNumber.setScale(3, BigDecimal.ROUND_HALF_UP); 
1

你不需要數截斷多餘的零數字格式,除非你想以這種方式打印出來。只要取出字符串並使用Double.parseDouble(),然後打印格式:

// "#.00" always shows 2 digits after decimal, "#.##" is optional if zeros are after decimal 
NumberFormat blah = new DecimalFormat("#.00"); 

String s = "00000100000.00"; 
System.out.println(blah.format(Double.parseDouble(s))); 
+0

獲得輸出爲100000.0而不是100000.00 – Edward 2012-08-08 07:03:37

+0

@Edward然後你想你的DecimalFormat是這樣的:''#.00「'''''是一個」數字,零顯示爲不存在「和「0」只是「數字」 – 2012-08-08 07:07:52