Тестирование на «двойное» равенство в javascript

Я перевел экспериментальный C #поплавок» версияБиблиотека Clipper в javascript. В новейшей версии песочницы есть функцияIsAlmostEqual который, кажется, трудно перевести. Двойное равенство нельзя сравнивать с помощью оператора == из-за проблем со стабильностью чисел, поэтому эта функция необходима для решения этих проблем.

-9223372036854775808 - aInt а также-9223372036854775808 - bInt легко рассчитать, например, с помощью Библиотека BigInteger, ноBitConverter.DoubleToInt64Bits сложнее.

Любая идея, как перевестиIsAlmostEqual Функция для JavaScript? Или конкретно как реализоватьBitConverter.DoubleToInt64Bits в JavaScript?

private static bool IsAlmostEqual(double A, double B)
{
  //http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm

  Int64 aInt = BitConverter.DoubleToInt64Bits(A);
  if (aInt < 0) aInt = unchecked(-9223372036854775808 - aInt);
  Int64 bInt = BitConverter.DoubleToInt64Bits(B);
  if (bInt < 0) bInt = unchecked(-9223372036854775808 - bInt);
  return (Math.Abs(aInt - bInt) 

Ответы на вопрос(1)

Ваш ответ на вопрос