请在下面找到我的代码:
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个小数位的double值
提前致谢
答案 0 :(得分:0)
您必须使用%f
而不是%s
。使用%s
时,Java使用String.valueOf
将您的值转换为String,该double value = (double)-16325.62015;
System.out.println(String.format("%f", value));
System.out.println(String.format(Locale.GERMANY, "%f", value));
使用默认语言环境。
tasks:
- debug:
msg: "{{ envcandidates | reject('equalto', '') | first }}"
vars:
envcandidates: “{{ lookup('env', 'BUILD_USER_EMAIL', 'GERRIT_CHANGE_OWNER_EMAIL', 'GERRIT_EVENT_ACCOUNT_EMAIL', 'GERRIT_EVENT_ACCOUNT_EMAIL', wantlist=True) }}”