如何在javascript中将双精度(64位)数转换/存储到32位浮点数或UInt16

时间:2017-04-26 11:38:04

标签: javascript floating-point

假设我可以在某种程度上丢失数字/精度。我发现通过网络发送一个64位(8字节)的号码有时会过度使用。我希望数据使用更少的带宽但保持一定的准确性。但我不知道在javascript中以32位或16位数据存储数字的正确方法。

1 个答案:

答案 0 :(得分:0)

以下是如何将JavaScript编号转换为包含32位浮点数或16位无符号整数的数组缓冲区:



let float64 = 3.141592653589793238462643383279502884197;

let float32View = new DataView(new ArrayBuffer(4));
float32View.setFloat32(0, float64);

let uint16View = new DataView(new ArrayBuffer(2));
uint16View.setUint16(0, float64);

console.log(float64);
console.log(float32View.getFloat32(0));
console.log(uint16View.getUint16(0));