Gre*_*gor 2 java format locale decimalformat
我希望
var decimal = DecimalFormat.getInstance(locale).parse(number);
Run Code Online (Sandbox Code Playgroud)
当区域设置为 de_DE 并且数字为“3.2”时,会产生 ParseException 作为“.” 不是此区域设置的有效分隔符。为什么是这样?区域设置的想法不是所有这些格式问题都以标准化方式处理吗?
正如所评论的,德语中的句号( ) 字符是千位分组标记(不是小数点分隔符)。它的使用不是语义的,没有意义。不强制执行任何有关对特定数量的数字进行分组的规则。.DecimalFormat
因此,在您的代码中,该点实际上被忽略了。the3和 the2被视为好像是32,因此解析为三十二。
示例代码。
//Locale locale = Locale.US ; // Parses FULL STOP as a decimal separator, with 3.2 as result.
Locale locale = Locale.GERMANY ; // Parses FULL STOP as a digit grouping, with 32 as result.
String input = "3.2" ;
var decimal = DecimalFormat.getInstance( locale ).parse( input );
System.out.println( decimal ) ;
Run Code Online (Sandbox Code Playgroud)
32
| 归档时间: |
|
| 查看次数: |
389 次 |
| 最近记录: |