0

如果我有一个数字 52000000000,并且我想将其打印为 5.2E+9,我该如何使用 printf 呢?

4

3 回答 3

3

由于这是一种简单的方法,我将指导您完成它。

您将需要两个计数器:一个用于数字本身(双精度类型,我们称之为“num”),一个用于指数(整数,我们称之为 exp)。您需要一个 while 循环,使得当 num 大于 10 时,将 num 除以 10 并将 exp 增加 1。因此,像 7600 这样的东西应该具有 num = 7.6,exp = 3。

根据您的返回类型,您可以通过多种方式返回这些值。一种简单的方法是返回类型为字符串并返回 num+"E"+exp。

于 2011-10-26T04:21:27.923 回答
1

这可以用 printf("%.2g", 52000000000); “g”是科学记数法格式的转换字符,“.2”指定精度。

于 2014-02-10T07:18:50.280 回答
0

你需要看看这个:DecimalFormat

formatter = new DecimalFormat("0.#E0");
System.out.println(formatter.format(value));//value is where you store the number to be formatted
于 2011-10-26T04:15:12.563 回答