Java 中的小数格式
Decimal Format in Java
我一直在寻找答案,但我找不到,如果有其他 post 谈论它,对不起,但是我的答案很简单确定,但我看不到,如何格式化小数,如:
7.9820892389040892803E-05
而且我想格式化该数字以保留 "E" 但将小数点格式化为:
7.98203E-05
如果有人能给我看灯,我将不胜感激。
您可以使用 DecimalFormat
(docs here):
Symbol Location Localized? Meaning
0 Number Yes Digit
# Number Yes Digit, zero shows as absent
. Number Yes Decimal separator or monetary decimal separator
E Number Yes Separates mantissa and exponent in scientific notation.
例如:
DecimalFormat formatter = new DecimalFormat("#.#####E00");
System.out.println(formatter.format(7.9820892389040892803E-05));
System.out.println(formatter.format(7.98E-05));
输出:
7.98209E-05
7.98E-05
请注意,当您使用 #
时,不会打印尾随零。如果你总是想要小数点后五位数字,你应该使用 0
:
DecimalFormat formatter = new DecimalFormat("0.00000E00");
System.out.println(formatter.format(7.98E-05));
输出:
7.98000E-05
您可以通过 String Formatting
实现
您需要的格式是 %.5E
(= 大写科学记数法的精度 5)
示例:System.out.printf("%.5E", 5/17d);
输出 2.94118E-01
使用 DeciamlFormat 对象...
public static void main(String[] args) {
double amount = 7.9820892389040892803E-05;
DecimalFormat df = new DecimalFormat("0.00000E0");
System.out.println(df.format(amount));
}
结果:
我一直在寻找答案,但我找不到,如果有其他 post 谈论它,对不起,但是我的答案很简单确定,但我看不到,如何格式化小数,如:
7.9820892389040892803E-05
而且我想格式化该数字以保留 "E" 但将小数点格式化为:
7.98203E-05
如果有人能给我看灯,我将不胜感激。
您可以使用 DecimalFormat
(docs here):
Symbol Location Localized? Meaning
0 Number Yes Digit
# Number Yes Digit, zero shows as absent
. Number Yes Decimal separator or monetary decimal separator
E Number Yes Separates mantissa and exponent in scientific notation.
例如:
DecimalFormat formatter = new DecimalFormat("#.#####E00");
System.out.println(formatter.format(7.9820892389040892803E-05));
System.out.println(formatter.format(7.98E-05));
输出:
7.98209E-05
7.98E-05
请注意,当您使用 #
时,不会打印尾随零。如果你总是想要小数点后五位数字,你应该使用 0
:
DecimalFormat formatter = new DecimalFormat("0.00000E00");
System.out.println(formatter.format(7.98E-05));
输出:
7.98000E-05
您可以通过 String Formatting
实现您需要的格式是 %.5E
(= 大写科学记数法的精度 5)
示例:System.out.printf("%.5E", 5/17d);
输出 2.94118E-01
使用 DeciamlFormat 对象...
public static void main(String[] args) {
double amount = 7.9820892389040892803E-05;
DecimalFormat df = new DecimalFormat("0.00000E0");
System.out.println(df.format(amount));
}
结果: