0

番号52000000000があり、5.2E + 9として印刷したい場合、printfでそれを行うにはどうすればよいですか?

4

3 に答える 3

3

簡単な方法なので、ご案内します。

2つのカウンターが必要です。1つは数値自体(doubleと入力し、「num」と呼びましょう)用で、もう1つは指数(整数、expと呼びましょう)用です。numが10より大きい間、numを10で除算し、expを1で増やすような、whileループが必要になります。したがって、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 に答える