String.format("%.1f", number); fabric后台报错有“55,4”之类的问题
即:将.转换为了,
更改第一版:
val twoDForm = DecimalFormat("#.##")
val dfs = DecimalFormatSymbols()
dfs.decimalSeparator = '.'
twoDForm.decimalFormatSymbols = dfs
发现报错:java.lang.NumberFormatException: Invalid float: "۰"
看来要认真解决下了:
@Testpublic void testStringLocale() throws Exception {
Locale[] locales = new Locale[]{
Locale.CANADA,
Locale.CANADA_FRENCH,
Locale.CHINESE,
Locale.ENGLISH,
Locale.FRANCE,
Locale.GERMAN,
Locale.JAPANESE,
Locale.KOREA,
Locale.KOREAN,
Locale.PRC,
Locale.ROOT, };
String weightString = null;
for (Locale locale : locales) {
try {
weightString = formatFloatWithOneDot(locale, 55.4f);
float weight = Float.parseFloat(weightString);
} catch (NumberFormatException e) {
System.out.println(locale + ">>>>>" + weightString + ">>>>>>>>>> error");
continue; }
System.out.println(locale + ">>>>>" + weightString); }}
发现在不同的语言背景下,多数情况是可以成功解析的 ,但是在少数环境 华为,三星等手机会解析错误
所以解析之前指定国家就好了
String.format(Locale.ENGLISH, "%.1f", number);