[ 
https://issues.apache.org/jira/browse/CLI-226?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13575753#comment-13575753
 ] 

Thomas Neidhart commented on CLI-226:
-------------------------------------

One thing to keep in mind when using NumberFormat.parse is that the grouping 
separator may lead to unwanted results, e.g. for GERMAN, the decimal separator 
is ',' and the grouping separator is '.'.

Thus when specifying '2.14' as input, the result will actually be 214.
                
> createNumber() in TypeHandler cannot work with some Locale
> ----------------------------------------------------------
>
>                 Key: CLI-226
>                 URL: https://issues.apache.org/jira/browse/CLI-226
>             Project: Commons CLI
>          Issue Type: Bug
>    Affects Versions: 1.2
>            Reporter: Olivier Sechet
>              Labels: i18n
>         Attachments: cli-226.diff
>
>
> The {{createNumber()}} method in the {{TypeHandler}} class expects the 
> decimal separator to be a dot ({{'.'}}). However the dot is not used in all 
> the languages as a decimal separator. Most of the European countries, Russia 
> and a lot of others countries uses a comma ({{','}}).
> With the corresponding {{Locale}}, the {{createNumber()}} method fails, 
> throwing an exception.
> For example:
> {code:title=Type.java|borderStyle=solid}
> public class Type {
>     public static void main(final String[] args) {
>         java.util.Locale.setDefault(java.util.Locale.GERMANY);
>         String text = 
> java.text.NumberFormat.getNumberInstance().format(12.34);
>         Number nb = org.apache.commons.cli.TypeHandler.createNumber(text);
>         System.out.println(nb);
>     }
> }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to