对于所有在家玩的人,我正在阅读 Walter Savitch 的 Absolute Java 第五版(第 2 章第 66 页)。
表达式
double d = 12345.123456789;
System.out.printf("START%12.5e END %n", d);
答案
START 1.23451e+04END
我理解这个 printf 方法参数的基本原理,例如我知道“%”代表参数的开始。 '12'是间距数,'.5'是小数点移动的次数...我看到小数点向左移动了4位...有人可以解释一下电子记数法的原理吗?还有这个表达式是如何得出这个答案的=)。
就电子记数法而言,它意味着科学记数法;
所以像 5.89e-4 意味着 0.000589(如果负数向左移动,如果不向右移动小数位)。
最佳答案
“e”是“指数”。
在格式表达式中:
12 是显示的数字表示的(最小)宽度。 5 是精度的小数位数。
格式本身是科学记数法。该数字始终标准化为 1 到 10 之间的某个值,打印表达式中的“+04”是数字部分乘以 10 的幂。
关于java - Printf E 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17594832/