小语种导致String.format()小数点显示逗号

设置-修改语言为西班牙语 当前format后小数点变成逗号

  • 按config.locale = Locale.SIMPLIFIED_CHINESE;配置后发现开启新的activity该配置对新activity无效
//原因:java.util.Locale类中不存在部分地区的语言,其中format最终调用如下方法
public static String format(Locale locale, String format, Object... args)
l != null ? l : Locale.getDefault()
入参locale默认为Locale.getDefault()


//单个修复,设置语种
double dValue = 360.672;
String strValue = String.format(Locale.ENGLISH,"%.2f",dValue);

//全局设置,修改默认语种
String languageToLoad = "zh";
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = this.getResources().getConfiguration();
DisplayMetrics metrics = this.getResources().getDisplayMetrics();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
    Locale localeDefault = getResources().getConfiguration().getLocales().get(0);
    localeDefault = Locale.SIMPLIFIED_CHINESE;
}else {
    config.locale = Locale.SIMPLIFIED_CHINESE;
}
this.getResources().updateConfiguration(config, metrics);

参考链接
android 使用String.format("%.2f",67.876)自已定义语言(俄语、西班牙语)会把小数点变为逗号_mmsx的博客-CSDN博客

你可能感兴趣的:(小语种导致String.format()小数点显示逗号)