Javascript 在UInt64上进行数学运算就是将其展开

Javascript 在UInt64上进行数学运算就是将其展开,javascript,firefox-addon,jsctypes,Javascript,Firefox Addon,Jsctypes,我有一个var blah=ctypes.UInt64('65'),65真的是什么。我需要做这方面的数学计算,但当我这样做时: console.log(blah*ctypes.UInt64('2'))它删除了ctypes.UInt64包装。我需要保留该包装,以便将其传递到其他文件中,我知道我可以重新包装它,但是在UInt64和Int64上进行数学运算的正确方法是什么呢 您需要根据需要展开和重新包装,当然还需要进行足够的错误检查和处理,以了解何时会发生错误,以及哪些数学运算可能会丢失精度(>53位)

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


console.log(blah*ctypes.UInt64('2'))
它删除了
ctypes.UInt64
包装。我需要保留该包装,以便将其传递到其他文件中,我知道我可以重新包装它,但是在
UInt64
Int64
上进行数学运算的正确方法是什么呢

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

如果您不能使用常规JS双精度浮点数学,因为您确实需要这些64位,那么您需要阅读bignum数学以及如何使用小数字进行运算,或者找到合适的bignum库。但是,您的示例中的数字不需要这样做


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

Aw drats ok,重新包装它。是的,我肯定会在做数学之前用你之前给我的帖子检查位。