Longデータ型をDoubleまたはに変換する方法はありますかdouble?
たとえば15552451L、doubleデータ型に変換する必要があります。
回答:
あなたは単に行うことができます:
double d = (double)15552451L;
または、次のようにLongオブジェクトからdoubleを取得できます。
Long l = new Long(15552451L);
double d = l.doubleValue();
new)取り除くことができないこのような場合には、回避する価値があります。
double d = 15552451L;
簡単なキャスト?
double d = (double)15552451L;
15552451d
すでに述べたように、単にlongをdoubleにキャストできます。ただし、Java ではlongからdoubleへの変換が狭まるため、longからdoubleへの変換には注意してください。
double型からlong型への変換には、64ビット浮動小数点値から64ビット整数表現への重要な変換が必要です。実際のランタイム値によっては、情報が失われる可能性があります。
たとえば、次のプログラムは0ではなく1を出力します
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
バイナリ変換をお探しですか?
double result = Double.longBitsToDouble(15552451L);
これによりdouble、longリテラルと同じビットパターンが得られます。
ここでは、2進数または16進数のリテラルが役に立ちます。下記は用例です。
double nan = Double.longBitsToDouble(0xfff0000000000001L);
double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L);
double positiveInfinity = Double.longBitsToDouble(0xfff0000000000000L);
(Double.longBitsToDouble(long)を参照)
あなたはまたlong、
long bits = Double.doubleToRawLongBits(Double.NaN);
longしたいのかdouble(キャストはJavaを使用するときに最初に学ぶことの1つだと思います)も指定していませんでした。たぶん、彼doubleはlong値と同じビットパターンでaを取得したいと考えています。よくわかりません。だから私はちょうど答えを出した。
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
このように、文字列値をDoubleまたはFloatまたはIntに変換するのが簡単であるため、Long型をDoubleまたはFloatまたはIntに問題なく変換できます。
長い日付タイプとはどういう意味ですか?
longをdoubleにキャストできます。
double d = (double) 15552451L;
Long.valueOf(15552451L).doubleValue()経由したい場合Long。これは内部で、からのキャストと同じdoubleですが、いくつかの自動/ボックス化解除を行うことに注意してください。