浮點數檢查工具

檢查 float16、bfloat16、float32 與 float64 的 IEEE 754 儲存方式,查看符號、指數、尾數、捨入誤差與相鄰可表示值。

當問題是 浮點數如何儲存,而不只是改寫數字進位時,請使用此頁。若只是整數進位轉換,請使用 進位轉換器

其他語言 日本語 | English | 繁體中文 | 繁體中文(香港)

為什麼使用這個浮點數檢查工具?

檢查浮點數值

選擇十進位、hex 或 binary 輸入。複製的分享 URL 只儲存所選模式與格式,不儲存輸入值。

輸入

十進位輸入可查看所選格式導入的捨入誤差。

解碼結果

來源值

Bit 配置

指數 bits
原始指數
尾數 bits

下一個較小值

輸入值後,會顯示此方向的相鄰可表示值。

下一個較大值

輸入值後,會顯示此方向的相鄰可表示值。

此頁處理儲存問題,不只是進位轉換

進位轉換器會把同一個整數改寫成不同記數系統。浮點數檢查不同:十進位值可能要先捨入,才能放入所選的符號、指數與尾數配置。因此此頁同時顯示儲存值與捨入誤差。

為什麼 0.1 會改變

十進位數字 0.1 沒有有限的二進位展開。每種二進位浮點格式都會改存最接近的可表示值。較寬的尾數可降低誤差,但不會讓 0.1 變成精確值。

float16 與 bfloat16

float16 保留較多尾數 bits,因此在接近 1 的範圍通常較精確。bfloat16 保留與 float32 相同的指數寬度,因此能表示更大與更小的量級,但精度較低。這個取捨使 bfloat16 常出現在現代 ML 工作流程中。

特殊值

當所有指數 bit 都是 1 時,值會依尾數而成為 infinity 或 NaN。當所有指數 bit 都是 0 且尾數非零時,值是 subnormal。IEEE 754 也有帶符號的零,因此 -0+0 可能有不同 bit pattern。

常見問題

這和進位轉換器有什麼不同?

進位轉換器會把同一個整數改寫為二進位、八進位、十進位或十六進位。浮點數檢查工具則顯示浮點數在 IEEE 754 規則下,如何以符號、指數與尾數 bits 捨入並儲存。

為什麼 0.1 在二進位浮點數中無法保持精確?

因為 0.1 沒有有限的二進位展開。所選格式會儲存最接近的可表示二進位分數,因此會產生小幅捨入誤差。

float16 和 bfloat16 有什麼差異?

float16 保留較多尾數 bits,因此在接近 1 的範圍較精確。bfloat16 保留與 float32 相同的指數寬度,因此動態範圍較寬,但分數 bits 較少。

為什麼分享 URL 不包含我的輸入值?

本頁只複製設定 URL,讓測試值不進入網址列、瀏覽器歷史與分享連結。除非你自行複製,輸入值會留在本機。

評論(可選)

為了減少負載,僅在需要時才取得評論。