Float32Array操作是否转换为double?

时间:2016-05-04 13:33:39

标签: javascript c++

如果我有这个javascript代码:

var a = new Float32Array(4);
var b = new Float32Array(4);
var r = new Float32Array(4);

//fill here "a" and "b" with random numbers

r[0] = a[0] + b[0];
r[1] = a[1] - b[1];
r[2] = a[2] * b[2];
r[3] = a[3] / b[3];

在进行操作之前,这些浮点数是否转换为双倍? 如果我在c ++和javascript代码(没有sqrt(),sin(),tan()......等)上运行相同的float32操作,浮点数将在这两种语言上保持相同的值吗?

1 个答案:

答案 0 :(得分:2)

JavaScript数学运算(+-*/)始终使用64位双精度数。类型化数组是关于存储解释;一旦从类型化数组中检索到一个值,它就是一个普通的JavaScript编号。

有些情况下,数字中的值处理为整数,但数字仍为64位双精度数。