代码之家  ›  专栏  ›  技术社区  ›  erikkallen

SQL Server数字格式

  •  4
  • erikkallen  · 技术社区  · 14 年前

    当我执行以下操作时:

    DECLARE @x float
    SET @x = 1234.5
    SELECT CONVERT(varbinary, @x)
    

    返回的格式是什么?我需要以某种方式从.net获取原始数字,而我只有二进制值可用。

    上面的语句返回

    (no column name)
    0x40934A0000000000
    

    2 回复  |  直到 14 年前
        1
  •  0
  •   D'Arcy Rittich    14 年前

    C中与SQL Server对应的数据类型 varbinary byte[] . 但是,如果你想把浮点数作为一个数字来访问,为什么要把它转换成二进制呢?

        2
  •  0
  •   erikkallen    14 年前

    显然格式是ieee64位,但是字节顺序与 BitConverter.ToDouble 期望。可以使用以下代码检索号码:

    long bits = 0;
    for (int i = 0; i < 8; i++)
        bits = (bits << 8) | data[i];
    return BitConverter.Int64BitsToDouble(bits);