0

次の文字列" 0x4B196DAF"があります。「」のような出力を取得したい10055087.000000

1.0055087E7私のコードは「 」のような奇妙な出力を示しています

long l = Long.parseLong(hexval, 16);
return Float.intBitsToFloat(l.intValue()); 

私も試してみました

long l = Long.parseLong(hexval, 16);
return Double.longBitsToDouble(l.longValue());

しかし、何も役に立ちません。私は正しい出力を示しているいくつかのウェブサイトをチェックしました。問題を正確に見つけることができません。

4

1 に答える 1

3

文字列として出力したいと思います。どこかでtoString()を呼び出します。制限に達した後、科学的記数法を使用します。

あなたは使用を試みることができます:

int hex = 0x4B196DAF;
float f = Float.intBitsToFloat(hex);
System.out.println(f);
System.out.printf("%f", f);

出力...。

1.0055087E7
10055087.00000010055087

または、必要に応じて、NumberFormatを使用してみてください。これにより、最小の小数桁を設定できます。

NumberFormat nf = NumberFormat.getInstance();
nf.setGroupingUsed(false);
nf.setMinimumFractionDigits(6);

System.out.println(nf.format(f));

出力...。

10055087.000000

お役に立てば幸いです。

于 2013-03-17T19:40:33.270 に答える