2
我正试图在SQL Server中找到一种将HEX
转换为float
的方法。将十六进制转换为浮点SQL
示例值为0x42c80000
,其对应于100.00
。
使用CONVERT
很容易将此Hex
值转换为Int
,但我找不到浮点转换等效项。
我正试图在SQL Server中找到一种将HEX
转换为float
的方法。将十六进制转换为浮点SQL
示例值为0x42c80000
,其对应于100.00
。
使用CONVERT
很容易将此Hex
值转换为Int
,但我找不到浮点转换等效项。
DECLARE @BinaryFloat AS VARBINARY(4);
SET @BinaryFloat = CONVERT(VARBINARY, '0x42c80000',1);
SELECT SIGN(CAST(@BinaryFloat AS INT))
* (1.0 + (CAST(@BinaryFloat AS INT) & 0x007FFFFF) * POWER(CAST(2 AS REAL), -23))
* POWER(CAST(2 AS REAL), (CAST(@BinaryFloat AS INT) & 0x7f800000)/0x00800000 - 127)
希望我能居功,但很可惜:http://multikoder.blogspot.com.au/2013/03/converting-varbinary-to-float-in-t-sql.html