有沒有辦法將 a longI 從Double.toLongBitsback反轉為 a Double?
以下不起作用:
Double n = 171.30672219;
System.out.println(Double.doubleToLongBits(n));
System.out.println(new Double(Double.doubleToLongBits(n)));
這列印:
4640231336019091517
4.6402313360190915E18
雖然我想找回 171.30672219
uj5u.com熱心網友回復:
由于檔案的doubleToLongBits說:
在所有情況下,結果都是一個長整數,當給該
longBitsToDouble(long)方法時,將產生一個與引數相同的浮點值doubleToLongBits(除了所有 NaN 值都折疊為單個“規范”NaN 值)。
double n = 171.30672219;
System.out.println(Double.doubleToLongBits(n));
System.out.println(Double.longBitsToDouble(Double.doubleToLongBits(n)));
uj5u.com熱心網友回復:
你可以這樣做。
Double n = 171.30672219;
long bits = Double.doubleToLongBits(n);
double d = Double.longBitsToDouble(bits);
System.out.println(d);
印刷
171.30672219
歡迎來到IEEE 754的世界。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/341685.html
