2012-03-15 1590 views
11

在java中,如何将百分比字符串转换为BigDecimal?如何将百分比字符串转换为BigDecimal?

感谢

String percentage = "10%"; 
BigDecimal d ; // I want to get 0.1 
+0

似乎是重复的问题:http://stackoverflow.com/questions/2109860/compute-percentage-for-bigdecimals – 2012-03-15 03:00:14

回答

5
BigDecimal d = new BigDecimal(percentage.trim().replace("%", "")).divide(BigDecimal.valueOf(100)); 
1

只要你知道%象征将永远在你的String结束:

BigDecimal d = new BigDecimal(percentage.substring(0, percentage.length()-1)); 
d.divide(100); // '%' means 'per hundred', so divide by 100 

如果你不知道%符号会有:

percentage = percentage.replaceAll("%", ""); // Check for the '%' symbol and delete it. 

BigDecimal d = new BigDecimal(percentage.substring(0, percentage.length()-1)); 
d.divide(new BigDecimal(100)); 
+0

没有'鸿沟(INT)''内类BigDecimal'。 – 2012-03-15 02:58:32

+0

@ Eng.Fouad你是对的,我的错。现在编辑... – Jon 2012-03-15 02:59:45

12

尝试new DecimalFormat("0.0#%").parse(percentage)

+0

这里Namal提供一种方法的答案,而不是再次分裂。好。 – 2012-03-15 08:57:48

+1

请记住,这不适用于“10.5%”之类的东西。 – 2013-06-17 06:54:21

+1

@RasmusFaber它会 – maksimov 2017-06-23 18:52:29

相关问题