前端js把byte数组转为float类型

最近在做基于edgex的项目。该项目里float类型的数据被base64编码。如果base64直接显示在前端,用户看不出float类型的值是什么,非常不直观。

把这个base64转为float才直观。

上代码:

function base64toBlob(base64,type) {  
    // 将base64转为Unicode规则编码
	let  bstr = atob(base64, type),  
	n = bstr.length,  
    u8arr = new Uint8Array(n);  
    while (n--) {  
        u8arr[n] = bstr.charCodeAt(n) // 转换编码后才可以使用charCodeAt 找到Unicode编码
    }  
    return new Blob([u8arr], {  
        type,
    })
} 

function getFloatValue(base64Str) {  
	let blob = base64toBlob(base64Str, "");
	return blob.arrayBuffer().then(buffer => {
		let view = new DataView(buffer);
		if(buffer.byteLength == 4){
			return view.getFloat32(0, false);
		} else {
			return view.getFloat64(0, false);
		}
	});
} 

await getFloatValue("v/MzM0AAAAA=")
await getFloatValue("vi8qkA==")

此条目发表在IT分类目录,贴了, , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。

*