Double.longBitsToDouble() の呼び出しで、32ビット int 値が引数として渡されています。 これはほぼ間違いなく意図したことではありませんし、意図した結果を与えることはほとんどありません。