Android 十进制格式不';我不能在安卓7上工作
我有一个将数值转换为格式化字符串的方法。它运行良好,但只适用于低于安卓7的版本。在Android 7及以上版本上,它被忽略Android 十进制格式不';我不能在安卓7上工作,android,formatting,decimalformat,Android,Formatting,Decimalformat,我有一个将数值转换为格式化字符串的方法。它运行良好,但只适用于低于安卓7的版本。在Android 7及以上版本上,它被忽略 public static String printableSumSeparators(double sum, String format) { DecimalFormatSymbols dfSymbols = new DecimalFormatSymbols(); dfSymbols.setDecimalSeparator(COMMA_SEPARATOR)
public static String printableSumSeparators(double sum, String format) {
DecimalFormatSymbols dfSymbols = new DecimalFormatSymbols();
dfSymbols.setDecimalSeparator(COMMA_SEPARATOR);
dfSymbols.setGroupingSeparator(' ');
DecimalFormat df = new DecimalFormat(format, dfSymbols);
df.setGroupingUsed(true);
return df.format(sum);
}
其中逗号分隔符=','该方法的输入有两个参数,用于转换的数字本身和格式为:##.0#
示例:
输入:500000
产量:50万
但在安卓7上,它不起作用,并且号码没有格式化
问题:如何修复此错误并使其在最新版本的android上运行下面的代码可能对您很有用,因为它的工作方式类似于使用逗号分隔十进制值
protected String getCommaSeparated(String s)
{
try
{
if (s.length() > 0)
{
s =
customFormat("##,##,##0",Double.parseDouble(s.toString().replace(",","")));
if(s.length() > 0)
{
return s;
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return s;
}
public String customFormat(String pattern, double value)
{
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
return output;
}
在最新版本的android上,您还需要设置GroupingSize。像这样:
DecimalFormatSymbols dfSymbols = new DecimalFormatSymbols();
dfSymbols.setDecimalSeparator(',');
dfSymbols.setGroupingSeparator(' ');
DecimalFormat df = new DecimalFormat(format, dfSymbols);
df.setGroupingSize(3);
df.setGroupingUsed(true);
你想要输出50万?是的,没错