2012-03-15 16 views

Odpowiedz

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

Dopóki wiesz, że % symbol będzie zawsze na końcu swojej String:

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

Jeśli nie wiesz, że symbol będzie % tam:

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

Nie ma 'divide (int)' 'wewnątrz klasy BigDecimal'. –

+0

@ Eng.Fouad masz rację, mój błąd. Edycja teraz ... – Jon

12

Spróbuj new DecimalFormat("0.0#%").parse(percentage)

+0

Tutaj Namal podaje odpowiedź w jednej linii, zamiast ponownie dzielić. Dobry. –

+1

Pamiętaj tylko, że to nie zadziała z czymś takim jak "10,5%". –

+1

@RasmusFaber będzie – maksimov