Technical Guide7 min

防範瀏覽器 JSON 解析中的 64 位元大整數(BigInt)精度丟失實務

JavaScript 的數字型別遵循 IEEE 754 雙精度浮點數標準,僅具備 53 位元的安全整數區間。任何大於 9,007,199,254,740,991(Number.MAX_SAFE_INTEGER)的 64 位元整數在經由原生 JSON.parse() 處理時,都會發生靜默精度捨入。

具備即時互動工具直接在您的瀏覽器本機沙盒中測試此功能,不將任何資料上傳至伺服器。
前往實操工具 →

1. Snowflake ID 與資料庫主鍵的靜默竄改

分散式系統中的 Snowflake ID 或關聯式資料庫的 BIGINT 主鍵,數值往往高達 64 位元。

例如 9007199254740993 會被無警告捨入成 9007199254740992,直接造成查無資料或更新錯誤紀錄的嚴重災難。

Summary & Best Practices

處理涉及金融、資料庫主鍵與 Snowflake ID 的 JSON 時,務必採用無損 BigInt 機制防止浮點捨入悲劇。

← 返回所有實務指南前往使用 json-formatter 工具 →