浮點表示法
IEEE 754:精確儲存十進位、直接捨入及相鄰值
畫面十進位通常比二進位實際儲存的數字短得多。判斷數值相等之前,先檢查實際位元與精確十進位。
內容更新: · 維護者與修正回報
區分三個欄位
Binary32 使用 1 個符號位、8 個指數位、23 個小數位;binary64 分別是 1、11、52。正規值有隱含前導 1,指數偏移為 127 或 1023。次正規值的指數欄位為零、沒有隱含 1,以提供漸進下溢。
指數欄位全 1 且小數為零時是 Infinity,否則是 NaN。原始 Hex 與位元輸入保留 NaN payload;十進位 NaN 則產生固定 quiet NaN。Hex 是最高有效位在前的儲存位元模式,不是十六進位浮點寫法,也不是主機位元組序 dump。
直接捨入至所選寬度
本工具把十進位數字解析為精確 BigInt 分數,只捨入一次,採最接近值、平手取偶數。不先經過 JavaScript Number 再產生 binary32,可避免 float32 中點附近的雙重捨入。
Binary32 的 1.000000059604644775390625 正好在 1 與下一個較大值中間,平手取偶數會選 3f800000。最後一位增加為 1.000000059604644775390626 時,必須選 3f800001;先轉 Number 再轉 float32 可能失去這個差異。十進位最多 4096 位數、指數 ±5000,整體最多 4110 字元。
明確閱讀精確值與相鄰值
Binary32 的 0.1 精確儲存為 0.100000001490116119384765625。精確十進位由整數有效數與二的次方推導;另外標示的 JavaScript 顯示只是較短的便利字串,不證明與十進位輸入完全相等。
+0 與 -0 的符號位不同。兩種零的下一個較大值都是最小正次正規值,下一個較小值都是最小負次正規值。NaN 沒有排序相鄰值。Infinity 朝無限方向維持自身,另一側相鄰值是最大有限值。相鄰按鈕使用精確 Hex,避免多一次捨入。本工具不是任意精度運算器、數值穩定性分析或例外旗標模擬器。
資料可信度