在UInt64上进行数学运算正在解开它

时间:2014-06-23 09:11:35

标签: javascript firefox-addon jsctypes

我有一个var blah = ctypes.UInt64('65'),65真的是什么。我需要对此做数学,但是当我这样做时:

console.log(blah * ctypes.UInt64('2')删除ctypes.UInt64换行。我需要保留那个包装,这样我就可以将它传递给其他东西了,我知道我可以重新包装它,但是在UInt64Int64请问正确的数学方法。

1 个答案:

答案 0 :(得分:1)

没有API /库可以对js-ctypes Int64类型进行数学运算。

您需要根据需要进行展开和重新换行,当然还要进行足够的错误检查和处理,以了解何时safe to unwrap stuff以及哪些数学运算可能会失去精度(> 53位)和/或溢出号。

如果你不能使用常规的JS双精度浮点数学,因为你真的需要那些64位,那么你需要阅读bignum数学以及如何用小数字来做,或找到合适的bignum库。但是,示例中的数字不需要这个。

如果可能的话,首先避免进行int64数学运算;但当然,这并不总是可行的。