SQL Server数字格式

时间:2010-09-27 14:16:33

标签: sql-server binary

当我执行以下操作时:

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

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

澄清:

上述陈述返回

(no column name)
0x40934A0000000000

不知何故,我必须从二进制数据0x40934A0000000000返回值12345.5。

2 个答案:

答案 0 :(得分:0)

C#到SQL Server varbinary中的相应数据类型是byte[]。但是,如果要将其作为数字访问,为什么要将float转换为二进制文件?

答案 1 :(得分:0)

显然格式是IEEE 64位,但字节顺序与BitConverter.ToDouble期望的相反。可以使用以下代码检索该数字:

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