本來專案需求需要判斷 mac address 來做位址的大小比較,
想到的做法是直接將16進制轉為十進制
例如 mac address 為 "FF-FF-FF-FF-FF-FF"
先轉成陣列紀錄十進制 [255, 255, 255, 255, 255, 255]
再考慮十進制位數補0變成
[255000000000000000, 255000000000000, 255000000000, 255000000, 255000, 255]
但問題來了,將此陣列的所有值加起來
變成 255255255255255260
而不是正確的 255255255255255255
過去只有小數點的計算會遇到運算錯誤,但是這次都是整數,是為什麼呢?
請問有什麼解法呢?