我有一个表示 GPS 坐标的浮点值,我喜欢将其转换为 32 位十六进制字符串。
我尝试了描述的所有解决方案 here但每次,结果都不是我所期望的。
例如,大多数“ToHex”函数:
var lat = 45.839152;
console.log(ToHex(lat));
返回我 2d.56d0b30b5aa8
但我期望 42355b43
的结果为 most转换器返回
你知道我如何在 JavaScript 中得到 42355b43
吗?
谢谢!
最佳答案
你可以拿TypedArray
带有 ArrayBuffer
的对象和 DataView
.
然后将值设置为 float 32 并将 View 读取为值的无符号整数 8 位。
const getHex = i => ('00' + i.toString(16)).slice(-2);
var view = new DataView(new ArrayBuffer(4)),
result;
view.setFloat32(0, 45.839152);
result = Array
.apply(null, { length: 4 })
.map((_, i) => getHex(view.getUint8(i)))
.join('');
console.log(result);
关于javascript - 在 JavaScript 中将 float 转换为 32 位十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47164675/