2012-08-08 82 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