java.lang.IllegalArgumentException: Multiple decimal separators in pattern "SFr.#,##0.00"

Coderanch | John Piekos | 1 decade ago
tip
Click on the to mark the solution that helps you, Samebug will learn from it.
As a community member, you’ll be rewarded for you help.
  1. 0

    I18N Currency Formatting Issue

    Coderanch | 1 decade ago | John Piekos
    java.lang.IllegalArgumentException: Multiple decimal separators in pattern "SFr.#,##0.00"
  2. 0

    Error in loading Exceptions panel | Oracle Community

    oracle.com | 1 year ago
    java.lang.IllegalArgumentException: Malformed pattern "#.##0"
  3. 0

    Issue {code} I currently have a problem concerning Camel Bindy. I have a csv file that should be parsed with Camel Bindy using a given model class. This csv file contains a number that should be parsed as a BigDecimal. The problem is that this number contains a comma as a grouping separator and a point as the decimal separator. If I start the camel route the unmarshal process will throw a NumberFormatException mentioning the invalid format of that number. So I tried to add a pattern to the DataField annotation, but the error stays. After digging throw the documentation (http://camel.apache.org/bindy.html) and the source code of FormatFactory (http://grepcode.com/file_/repo1.maven.org/maven2/org.apache.camel/camel-bindy/2.13.1/org/apache/camel/dataformat/bindy/FormatFactory.java/?v=source) I'm a little bit confused, because the documentation mentions the ability to specify a grouping separator, but the source code shows that the pattern is ignored for BigDecimal data types. Does anyone know how to specify that grouping separator? Or is this not implemented yet? {code} Solution {code} public void parsePattern(String formattedString, Locale locale, String pattern, char groupingSeparator, char decimalSeparator) throws ParseException { DecimalFormatSymbols symbols = new DecimalFormatSymbols(locale); symbols.setGroupingSeparator(groupingSeparator); symbols.setDecimalSeparator(decimalSeparator); DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols); decimalFormat.setParseBigDecimal(true); // parse the string BigDecimal bigDecimal = (BigDecimal) decimalFormat.parse(formattedString); bigDecimal.setScale(precision); System.out.println(bigDecimal); } {code}

    Apache's JIRA Issue Tracker | 2 years ago | Charles Moulliard
    java.lang.IllegalArgumentException: Malformed pattern "###.##0,00"
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IllegalArgumentException

      Multiple decimal separators in pattern "SFr.#,##0.00"

      at java.text.DecimalFormat.applyPattern()
    2. Java RT
      DecimalFormat.applyPattern
      1. java.text.DecimalFormat.applyPattern(Unknown Source)
      2. java.text.DecimalFormat.applyPattern(Unknown Source)
      2 frames