internal static double SetWord0(double d, int i) { long dBits = System.BitConverter.DoubleToInt64Bits(d); dBits = ((long)i << 32) | (dBits & unchecked((long)(0x0FFFFFFFFL))); return System.BitConverter.Int64BitsToDouble(dBits); }