问题描述
我有一个包含自定义字节信息的大型 DAT 文件,
我的任务是将解决方案转换为 JavaScript。
是为了使解决方案更加单一语言,并转换为无服务器云计算。
但是,我在转换此测试数据时遇到了问题。
应该返回浮点数的值,
但我似乎无法正确转换数字。
切片缓冲区输出为<Buffer 40 82 e2 31 d6 d7 2e 8d>
,
哪个应该返回 604.274335557087
但实际上返回 4.090111255645752
。
我现在不知所措。
有什么想法吗?
fs.readFile(file,(err,data) => {
...
// Read other buffer slice() values fine until this step.
// Like: readInt8(),readIntBE(0,4),readBigUInt64BE(0,8)
...
let FloatNumber = data.slice(start,end).readFloatBE();
console.log('FloatNumber',FloatNumber);
...
}
解决方法
const buf = Buffer.from([0x40,0x82,0xe2,0x31,0xd6,0xd7,0x2e,0x8d]);
console.log( buf.readDoubleBE(0) );
// Prints: 604.274335557087