2016-05-04 2 views
2

Если у меня есть этот код: яваскриптОперации Float32Array преобразуются в двойные?

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]; 

ли эти поплавки преобразованы в два раз, прежде чем делать операции?
Если я запускаю одни и те же операции float32 на C++ и javascript-коде (без sqrt(), sin(), tan() ... и т. Д.) Будут ли поплавки поддерживать одинаковое значение на этих двух языках?

+0

@ RaymondChen очевидно. Удаление моего комментария. Благодарю. –

ответ

2

JavaScript математические операции (+, -, *, /) всегда выполняется с 64-битными удваивается. Типизированные массивы - это интерпретация хранилища; как только значение извлекается из типизированного массива, это простой номер JavaScript.

Бывают случаи, когда значение в числе обрабатывается как целое число, но цифры все еще 64-разрядные удваиваются.

Смежные вопросы