Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 十进制格式不';我不能在安卓7上工作_Android_Formatting_Decimalformat - Fatal编程技术网

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)

我有一个将数值转换为格式化字符串的方法。它运行良好,但只适用于低于安卓7的版本。在Android 7及以上版本上,它被忽略

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万?是的,没错