¿Cómo puedo analizar un String a BigDecimal?

Tengo este String: 10,692,467,440,017.120 (es una cantidad).

Quiero analizarlo en un BigDecimal. El problema es que he probado tanto DecimalFormat como NumbeFormat en vano. ¿Alguna ayuda?

Prueba esto

// Create a DecimalFormat that fits your requirements DecimalFormatSymbols symbols = new DecimalFormatSymbols(); symbols.setGroupingSeparator(','); symbols.setDecimalSeparator('.'); String pattern = "#,##0.0#"; DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols); decimalFormat.setParseBigDecimal(true); // parse the string BigDecimal bigDecimal = (BigDecimal) decimalFormat.parse("10,692,467,440,017.120"); System.out.println(bigDecimal); 

Si está creando una aplicación con soporte I18N, debe usar DecimalFormatSymbols(Locale)

También tenga en cuenta que decimalFormat.parse puede lanzar una ParseException por lo que debe manejarla (con try / catch) o lanzarla y dejar que otra parte de su progtwig la maneje

Prueba esto

  String str="10,692,467,440,017.120".replaceAll(",",""); BigDecimal bd=new BigDecimal(str); 

BigDecimal ofrece un constructor de cadenas. Tendrá que quitar todas las comas del número, mediante una expresión regular o String filteredString=inString.replaceAll(",","") .

Entonces simplemente llama a BigDecimal myBigD=new BigDecimal(filteredString);

También puede crear un NumberFormat y llamar a setParseBigDecimal(true) . Luego parse( le dará un BigDecimal sin preocuparse por el formateo manual.

Prueba el constructor correcto http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#BigDecimal(java.lang.String)

Puede instanciar directamente el BigDecimal con la cadena;)

Ejemplo:

 BigDecimal bigDecimalValue= new BigDecimal("0.5"); 
Intereting Posts