3

次のような文字列があります7.6E+7

私の質問は簡単です:これを対応する番号に変換するにはどうすればよい76000000ですか?

substringパーツを分離し、E+7パーツを解析して7から、小数点以下の桁数を 7 以上に移動するために使用しようとしました。これを行う簡単な方法はありますか?

ありがとうございました!

4

4 に答える 4

5
long n = Double.valueOf("7.6E+7").longValue();
System.out.println(d);
// prints 76000000 to the output.
于 2012-05-17T23:13:59.053 に答える
3

使用することをお勧めしDouble.parseDouble()ます:

double val = Double.parseDouble(str);

str入力文字列です。

于 2012-05-17T22:59:12.203 に答える
3

Double.parseDouble() を使用して数値として取得できます。

String e = "7.6E+7";
System.out.println(Double.parseDouble(e));

出力は 7.6E7 です。出力に E が必要ない場合は、使用できます

NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);
System.out.println(f.format(Double.parseDouble(e)));

これにより、整数にキャストせずに出力 76000000 が得られます。たとえば、数値に 0.1 を追加すると、出力は 76000000.1 になります。

于 2012-05-17T22:59:27.267 に答える
1

精度を失うことなく数値を最終的に整数にキャストできると確信している場合は、代わりに次のようにします。

int d = (int) Double.parseDouble("7.6E+7");
System.out.println(d);

これ76000000は出力に出力されます。

于 2012-05-17T23:00:34.783 に答える