Android 十进制格式不适用于8233.4892578125双精度值?

Android 十进制格式不适用于8233.4892578125双精度值?,android,number-formatting,decimalformat,Android,Number Formatting,Decimalformat,我有我的变量的双精度值是8233.4892578125,现在当我使用下面的代码将其转换为8233.5时,它并没有按预期工作 DecimalFormat df = new DecimalFormat("#.#"); private String convertToFormat(double value){ return df.format(value); } 现在,当我传递convertToFormat(8233.4892578125)时,它会给出以下输出: 8

我有我的变量的双精度值是8233.4892578125,现在当我使用下面的代码将其转换为8233.5时,它并没有按预期工作

DecimalFormat df = new DecimalFormat("#.#");
    private String convertToFormat(double value){

        return df.format(value);
    }
现在,当我传递convertToFormat(8233.4892578125)时,它会给出以下输出:

8233,5

那么,为什么会发生这种情况呢?它应该给我8233.5而不是8233.5,有人能给我这个问题的正确答案吗


注意:当我将android emulator语言从设置更改为意大利语时,会发生此问题。这是一个
语言环境问题。您应该提供一个使用小数点表示法的局部变量。使用欧洲语言环境,你应该得到重点(
locale.italic
e.g.)

编辑:


我已经通过这个String.format(current,getString(R.String.distance_calculation),4578.678)更改了我的方法;在用意大利语传递电流的方法中,我很确定意大利语使用了
,作为十进制分隔符。请参阅@blackbelt谢谢,我刚刚通过应用String.format(Locale.US,getString(R.String.distance_calculation),4578.678)解决了这个问题<代码>不是
。它的意思是十进制分隔符。
DecimalFormat decimalFormat = (DecimalFormat)
        NumberFormat.getNumberInstance(Locale.ITALIAN);
decimalFormat.applyPattern("#.#");