如何用指数表示法打印大数?

时间:2011-10-26 04:09:34

标签: java decimal notation exponential

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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您需要查看此内容:DecimalFormat

formatter = new DecimalFormat("0.#E0");
System.out.println(formatter.format(value));//value is where you store the number to be formatted