如果我有这个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操作,浮点数将在这两种语言上保持相同的值吗?
答案 0 :(得分:2)
JavaScript数学运算(+
,-
,*
,/
)始终使用64位双精度数。类型化数组是关于存储解释;一旦从类型化数组中检索到一个值,它就是一个普通的JavaScript编号。
有些情况下,数字中的值处理为整数,但数字仍为64位双精度数。