葡萄牙语(巴西)的区域设置错误

ash*_*rma 6 java decimalformat

我正在尝试获取葡萄牙语(巴西)的系统区域设置,但它给出的小数分隔符为.而不是,任何人都可以帮忙吗?我正在使用 Java 8。

下面是我正在使用的代码:

public static void main(String[] args) 
{
    final Locale locale = new Locale(System.getProperty("user.country.format"));
    
    final NumberFormat nf = NumberFormat.getNumberInstance(locale);
     
    DecimalFormatSymbols decSymbols = new DecimalFormatSymbols(locale);
    System.out.println("Decimal Symbol"+ decSymbols.getDecimalSeparator() + "");
}
Run Code Online (Sandbox Code Playgroud)

获取小数点分隔符而.不是,.

Tim*_*sen 3

我能够,使用pt区域设置(葡萄牙)获得您期望的小数分隔符:

final Locale locale = new Locale("pt");
final NumberFormat nf = NumberFormat.getNumberInstance(locale);
DecimalFormatSymbols decSymbols = new DecimalFormatSymbols(locale);
System.out.println("Decimal Symbol"+ decSymbols.getDecimalSeparator() + "");
Run Code Online (Sandbox Code Playgroud)

我没有看到br从调用返回任何区域设置DateFormat.getAvailableLocales(),因此要么它根本不存在(至少在我的 JRE 中),要么它使用小数点作为小数分隔符。请注意,pt_BR我认为您应该使用区域设置,但这假设您的 JRE 支持它。如果没有,那么您的代码可能只会使用默认区域设置。