【发布时间】:2016-05-30 10:52:30
【问题描述】:
我正在尝试在 SQL Server 中找到将HEX 转换为float 的方法。
一个示例值是0x42c80000,它对应于100.00。
使用CONVERT 很容易将此Hex 值转换为Int,但我找不到等效的浮点转换。
【问题讨论】:
标签: sql sql-server floating-point hex
我正在尝试在 SQL Server 中找到将HEX 转换为float 的方法。
一个示例值是0x42c80000,它对应于100.00。
使用CONVERT 很容易将此Hex 值转换为Int,但我找不到等效的浮点转换。
【问题讨论】:
标签: sql sql-server floating-point hex
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
【讨论】: