2014-06-23 20 views
0

我有一個var blah = ctypes.UInt64('65'),65是真的什麼。我需要做的數學,但當我這樣做,但當我這樣做:在UInt64上做數學是解開它

console.log(blah * ctypes.UInt64('2')它刪除ctypes.UInt64包裝。我需要保持這種包裝,所以我可以將它傳遞給其他東西,我知道我可以重新包裝它,但請問UInt64Int64的數學運算方式是什麼。

回答

1

沒有API /庫可以對js-ctypes Int64類型進行數學運算。

您需要根據需要解開並重新包裝,當然要做足夠的錯誤檢查和處理,以瞭解它何時爲safe to unwrap stuff以及哪些數學運算可能會失去精度(> 53位)和/或溢出數。

如果你不能使用常規的JS雙精度浮點數學,因爲你確實需要這些64位的數據,那麼你需要閱讀數學數學以及如何用小數字來做,或者找到合適的bignum庫。但是,您示例中的數字不需要這樣。

如果可能的話,避免在第一位做int64數學運算;但當然,這並非總是可能。

+0

好極了,好吧重新包裝它。是的,我肯定會使用你之前給我的那篇文章,在我做數學之前檢查一下位數。 – Noitidart