NodeJS - 将十六进制转换为浮点数

5

这可能听起来像是一个奇怪的难题而且很容易解决,但我无法找到一种可行的方法将字符串形式的十六进制转换成浮点数。

例如我的例子是:406ea716

如果我使用下面任意一个网站进行转换,我得到的结果是3.728948

http://www.h-schmidt.net/FloatConverter/IEEE754.html http://gregstoll.dyndns.org/~gregstoll/floattohex/

我尝试了互联网上找到的每一段代码,但都不能返回相同的结果。
在NodeJS中是否存在执行相同转换的模块?如果没有,我该怎么办?
感谢您的帮助。

可能是将十六进制转换为JavaScript中的浮点数的重复问题。 - mentinet
3个回答

8

我也遇到了同样的问题,请尝试以下方法:

使用Buffer('406ea716','hex').readFloatBE(0)代码。

输出结果为:3.7289481163024902


0

无需模块:

var hex = '406ea716';
// transform the hexadecimal representation in a proper js hexadecimal representation by prepending `0x` to the string
// parseInt() - because your example was an integer.
var num = parseInt( '0x' + '406ea716');
console.log( num );

谢谢您的回复,但这返回一个整数(1080993558),而如果我尝试使用我列出的网站将其转换为十六进制,它明显会返回一个浮点数。 - mentinet

0

谢谢您的回复,但这不是我列出的两个网站返回的相同结果。 - mentinet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接