¿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");