当我执行以下操作时:
DECLARE @x float
SET @x = 1234.5
SELECT CONVERT(varbinary, @x)
返回的格式是什么?我需要以某种方式从.net获取原始数字,并且我只有二进制值可用。
澄清:
上述陈述返回
(no column name)
0x40934A0000000000
不知何故,我必须从二进制数据0x40934A0000000000返回值12345.5。
答案 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);