请在下面找到我的代码:
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));