2012-03-15 17 views
11

En java, ¿cómo convertir el porcentaje de cadena a BigDecimal?cómo convertir Cadena de porcentaje a BigDecimal?

Gracias

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

parece como cuestión duplicado: http://stackoverflow.com/questions/2109860/compute-percentage-for-bigdecimals –

Respuesta

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

Como siempre que se sepa que el símbolo % siempre será al final de su String:

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

Si usted no sabe que el símbolo % será allí:

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

No hay 'brecha (int)' 'dentro de la clase BigDecimal'. –

+0

@ Eng.Fouad tienes razón, mi error. Editando ahora ... – Jon

12

Trate new DecimalFormat("0.0#%").parse(percentage)

+0

Aquí Namal proporciona la respuesta en un método de línea, en lugar de dividir de nuevo. Bueno. –

+1

Solo recuerda que esto no funcionará con algo así como "10.5%". –

+1

@RasmusFaber lo hará – maksimov

Cuestiones relacionadas