Я нашел код из here, который преобразует номер Javascript для внутреннего IEEE представления в виде двух значений uint32:Преобразование двух значений Uint32Array для Javascript числа
function DoubleToIEEE(f)
{
var buf = new ArrayBuffer(8);
(new Float64Array(buf))[0] = f;
return [ (new Uint32Array(buf))[0] ,(new Uint32Array(buf))[1] ];
}
Как преобразовать возвращаемое значение обратно на номер JavaScript? Таким образом:
var number = -10.3245535;
var ieee = DoubleToIEEE(number)
var number_again = IEEEtoDouble(ieee);
// number and number_again should be the same (if ever possible)
Спасибо! Кажется, нужно работать: http://jsbin.com/xuzayenuqu/edit?js,output –
Не могли бы вы любезно объяснить нам манекены, почему код уродливый? –
@ TimoKähkönen Присвоение пустующему типе с левой стороны сбивает с толку, лучше написать его явно с переменной. И два 'Uint32Array', где один был бы достаточным, выглядят неэффективными. Все это затрудняет понимание потока данных и находит обратную функцию. И, конечно, я предпочитаю формы с одним выражением :-) – Bergi