【发布时间】:2011-10-26 04:09:34
【问题描述】:
如果我有一个数字 52000000000,并且我想将其打印为 5.2E+9,我该如何使用 printf 呢?
【问题讨论】:
标签: java decimal notation exponential
如果我有一个数字 52000000000,并且我想将其打印为 5.2E+9,我该如何使用 printf 呢?
【问题讨论】:
标签: java decimal notation exponential
由于方法简单,我将指导您完成。
您需要两个计数器:一个用于数字本身(双精度类型,我们称之为“num”),一个用于指数(整数,我们称之为 exp)。您需要一个 while 循环,使得当 num 大于 10 时,将 num 除以 10 并将 exp 增加 1。因此,像 7600 这样的东西应该具有 num = 7.6,exp = 3。
根据您的返回类型,您可以通过多种方式返回这些值。一种简单的方法是返回类型为字符串并返回 num+"E"+exp.
【讨论】:
log(7600)=3.xx。您不需要循环中的除法。
这可以通过 printf("%.2g", 52000000000); “g”是科学记数法格式的转换字符,“.2”指定精度。
【讨论】:
你需要看看这个:DecimalFormat
formatter = new DecimalFormat("0.#E0");
System.out.println(formatter.format(value));//value is where you store the number to be formatted
【讨论】: