DecimalSeparator issue with String.Format()



请在下面找到我的代码:

double value = (double)-16325.62015;
System.out.println(String.format("%s", value));//-16325.62015
System.out.println(String.format(new Locale("de", "DE"), "%s", value));//-16325.62015
DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(new Locale("de", "DE"));
System.out.println(dfs.getDecimalSeparator());//,

在上面的代码中,我得到了德国语言环境的错误十进制分离器。

我也尝试了以下代码,但它产生-16325,6

double value = (double)-16325.62015;
DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(new Locale("de", "DE"));
DecimalFormat df = new DecimalFormat("#.#", dfs ); 
System.out.println(df.format(value));

是否有其他方法将输出打印为-16325,62015

注意:我想用n个特定区域的小数位数打印双重值

预先感谢

您必须使用%f而不是%s。使用%s时,Java使用使用默认语言环境的String.valueOf将您的值转换为字符串。

double value = (double)-16325.62015;
System.out.println(String.format("%f", value));
System.out.println(String.format(Locale.GERMANY, "%f", value));

相关内容

最新更新