首頁 電腦科學 浮點數精度計算機 產生日期: 2026年7月20日 下午09:34 浮點數精度計算機 輸入 格式雙精度(64 位元)數值1,000 電腦科學 浮點數精度計算機 計算 IEEE 754 半精度、單精度、雙精度與四倍精度格式的機器 epsilon、有效十進位位數,以及可表示數值之間的間距(ULP)。 輸入 格式與數值 格式 雙精度 64 位元 IEEE 754 二進位格式。每種格式都為尾數配置固定數量的位元。 數值 欲檢視的數值。可表示數值之間的間距會在此數量級下計算。 結果 輸入數值即可顯示計算結果。 精度 機器 epsilon 1 與下一個較大的可表示數值之間的間距,亦即 雙精度(64 位元) 格式的相對解析度。 此數值的 ULP 最後一位的單位,亦即 1,000 與其上方下一個可表示數值之間的距離。 細節 尾數位元 尾數的精度位元數,包含隱含的前導位元。 十進位位數 該格式能可靠表示的有效十進位位數約略值。 最大捨入誤差 將 1,000 附近的實數捨入至最接近的可表示數值時,所產生的最大絕對誤差。 分享 列印報告 重設 嵌入 嵌入這個計算機 預覽 將這段程式碼貼到您的網頁中即可顯示計算機。 複製程式碼 分享這個計算 開啟此連結的人都會看到您填入的數值。 複製連結 分享至 XFacebookLINE 電子郵件 最後更新:2026-06-29 浮點數精度 電腦以有限的位元儲存實數,因此多數數值只能保留近似值。本計算機透過計算機器 epsilon、可靠的十進位位數,以及在所選數值處可表示數值之間的間距(ULP),來呈現 IEEE 754 二進位格式(半精度、單精度、雙精度與四倍精度)的精度。這些指標共同說明了為何浮點數運算雖然精確卻並非完全準確。 浮點數如何儲存數值 一個 IEEE 754 數值由符號、尾數(有效數字)以及一個將其按 2 的乘冪縮放的指數組成,與二進位的科學記號相當類似。每種格式固定了尾數所佔的位元數:半精度的尾數有 11 位,單精度有 24 位,雙精度有 53 位,四倍精度有 113 位(每個數量皆包含一個隱含的前導位元)。尾數位元越多,解析度越精細。 機器 epsilon 衡量解析度最簡潔的指標是機器 epsilon,亦即 1.0 與其上方下一個可表示數值之間的間距: ε=2−(p−1)\varepsilon = 2^{-(p-1)} 其中 pp 為尾數位元數。以雙精度而言,ε=2−52≈2.22×10−16\varepsilon = 2^{-52} \approx 2.22 \times 10^{-16}。這是一個相對界限:任何實數儲存時的相對誤差至多為 ε/2\varepsilon / 2。可靠的有效十進位位數可直接由此推得,即 (p−1)log102(p-1)\log_{10} 2,雙精度約為 15.7 位。 ULP:隨數量級增長的間距 機器 epsilon 描述的是 1.0 附近的間距,但浮點數並非等間距分布。相鄰可表示數值之間的間距,即最後一位的單位(ULP),會隨數量級縮放: ULP(x)=2⌊log2∣x∣⌋−(p−1)\text{ULP}(x) = 2^{\lfloor \log_2 |x| \rfloor - (p-1)} 在 1 附近,間距即為機器 epsilon;在 1,000 附近約為其千倍。這正是為何浮點數維持固定的相對精度,卻在數值增大時喪失絕對精度。 計算範例 以雙精度與數值 1000 為例。指數為 ⌊log21000⌋=9\lfloor \log_2 1000 \rfloor = 9,因此: ULP(1000)=2 9−52=2−43≈1.14×10−13\begin{aligned} \text{ULP}(1000) &= 2^{\,9 - 52} = 2^{-43} \\ &\approx 1.14 \times 10^{-13} \end{aligned}ULP(1000)=29−52=2−43≈1.14×10−13 1000 附近的最大捨入誤差為其一半,約 5.7×10−145.7 \times 10^{-14}。因此,雙精度能區分 1000 與 1000.0000000000001,但無法區分在第十六位有效數字上才有差異的數值。 為什麼 0.1 並非精確值 二進位浮點數只能表示 2 的乘冪之和,而 0.1 沒有有限的二進位展開式,正如三分之一在十進位中沒有有限展開式一樣。因此它會被捨入至最接近的可表示數值,這也是為什麼在多數程式語言中 0.1 + 0.2 並不會剛好等於 0.3。其差異落在機器 epsilon 的數量級,通常無害,但會在長時間運算中累積,這也是為什麼金額常以整數或十進位型別儲存,而非以浮點數儲存。關於整數本身如何以二進位編碼,請參閱 二補數轉換計算。 常見問題(FAQ)什麼是機器 epsilon?機器 epsilon 是 1.0 與下一個大於 1.0 的浮點數之間的間距。它等於 2 的負次方,指數為尾數小數部分的位元數,以雙精度而言即為 2⁻⁵²,約等於 2.22 × 10⁻¹⁶。 機器 epsilon 衡量的是格式的相對解析度:任何實數儲存時的相對誤差都不會超過 epsilon 的一半。它是判斷某格式能可靠承載多少位數的標準量尺。 什麼是 ULP?ULP 是「最後一位的單位」(unit in the last place),亦即一個浮點數與其上方下一個可表示數值之間的距離。 與固定的機器 epsilon 不同,ULP 會隨數量級增長:在 1 附近,間距即為機器 epsilon;在 1,000 附近約為其千倍;在十億附近則更大。由於間距隨數值縮放,浮點數在整個範圍內維持大致固定的相對精度,而絕對精度則隨數值增大而下降。 為什麼 0.1 無法精確儲存?二進位浮點數只能表示 2 的乘冪之和。十進位小數 0.1 沒有有限的二進位展開式,正如三分之一沒有有限的十進位展開式一樣,因此它會被捨入至最接近的可表示數值,而該值略大於 0.1。 這也是為什麼在多數程式語言中 0.1 + 0.2 並不會剛好等於 0.3。誤差極小,大約落在機器 epsilon 的數量級,但會在多次運算中累積,這也是為什麼貨幣數值常以整數或十進位型別儲存。 每種格式能保留多少十進位位數?可靠的有效十進位位數約等於尾數小數部分的位元數乘以 2 的對數(約 0.301)。半精度約有 3 位,單精度約 7 位,雙精度約 15 至 16 位,四倍精度約 34 位。這些是能安全來回轉換的位數,若印出超過此範圍的位數,所暴露的是二進位表示法的捨入殘差,而非有意義的精度。 推薦的下一個 二補數轉換計算 將有號整數轉換為二補數的二進位與十六進位表示,或將二進位字串解碼還原為有號十進位整數。支援 8、16、32、64 位元寬度。 深入了解Base64 編碼開銷計算機 輸入二進位資料大小,計算 Base64 編碼後的輸出大小及編碼所增加的額外空間。 深入了解Big-O 成長率計算機 輸入資料規模 n,比較各常見時間複雜度級別所需的運算次數,從 O(log n) 到 O(n!)。 深入了解 200+ 計算機 · 10 種語言 · 完全免費 更多資料與編碼 二補數轉換計算文字轉二進位 / 十六進位 / ASCII 轉換器布隆過濾器容量計算器百萬畫素與列印尺寸計算機色彩格式轉換(HEX、RGB、HSL)浮點數精度計算機 +18 more Show less 色彩深度與每像素位元數計算器串流頻寬計算器吞吐量(bps)換算器奈奎斯特取樣率計算器音訊檔案大小計算機記憶體位址位元計算器資料傳輸時間計算機影片位元率與檔案大小計算機影像檔案大小計算機壓縮率計算機Base64 編碼開銷計算機CRC 校驗碼計算Git 儲存庫複製大小估算IEEE 754 浮點數位元分解PPI / DPI 像素密度計算器QR Code 資料容量查詢Unix 時間戳記轉換(Epoch ⇄ 日期)UTF-8 位元組大小計算機 其他電腦科學計算機 網路 子網路(CIDR)計算機每秒封包數計算器延遲預算計算器頻寬延遲乘積計算機CIDR 與子網路遮罩轉換器IP 位址範圍計算機IP 超網路計算機IPv4 位址表示法換算器IPv6 子網路計算機MTU 轉 MSS 計算機TCP 吞吐量計算機安全與加密 密碼強度(熵值)計算機雜湊碰撞機率計算機Chmod 權限計算機UUID 碰撞機率計算器演算法 夏農熵計算萊文斯坦距離計算器漢明距離計算機Big-O 成長率計算機Luhn 檢查碼計算器可靠性與儲存 服務可用性(SLA)計算機雲端儲存費用試算漢明碼 ECC 位元計算器複合可用性計算器API 速率限制計算器Cron 排程解析與下次執行時間MTBF、MTTR 與可用度計算器RAID 容量計算機效能與佇列 古斯塔夫森定律計算機利特爾法則計算器快取命中率與 AMAT 計算機阿姆達爾定律計算機愛爾蘭 C 人力配置計算器電池續航時間計算器AMAT(平均記憶體存取時間)計算Apdex 分數計算CPU 執行時間計算器IOPS 與吞吐量換算器M/M/1 佇列計算機M/M/c 佇列計算機 這個計算機對您有幫助嗎? 有幫助 需要改進 需要改進 我們可以如何改進這個計算機? 送出回饋 由 OneCalc 提供 ↗
最後更新:2026-06-29 浮點數精度 電腦以有限的位元儲存實數,因此多數數值只能保留近似值。本計算機透過計算機器 epsilon、可靠的十進位位數,以及在所選數值處可表示數值之間的間距(ULP),來呈現 IEEE 754 二進位格式(半精度、單精度、雙精度與四倍精度)的精度。這些指標共同說明了為何浮點數運算雖然精確卻並非完全準確。 浮點數如何儲存數值 一個 IEEE 754 數值由符號、尾數(有效數字)以及一個將其按 2 的乘冪縮放的指數組成,與二進位的科學記號相當類似。每種格式固定了尾數所佔的位元數:半精度的尾數有 11 位,單精度有 24 位,雙精度有 53 位,四倍精度有 113 位(每個數量皆包含一個隱含的前導位元)。尾數位元越多,解析度越精細。 機器 epsilon 衡量解析度最簡潔的指標是機器 epsilon,亦即 1.0 與其上方下一個可表示數值之間的間距: ε=2−(p−1)\varepsilon = 2^{-(p-1)} 其中 pp 為尾數位元數。以雙精度而言,ε=2−52≈2.22×10−16\varepsilon = 2^{-52} \approx 2.22 \times 10^{-16}。這是一個相對界限:任何實數儲存時的相對誤差至多為 ε/2\varepsilon / 2。可靠的有效十進位位數可直接由此推得,即 (p−1)log102(p-1)\log_{10} 2,雙精度約為 15.7 位。 ULP:隨數量級增長的間距 機器 epsilon 描述的是 1.0 附近的間距,但浮點數並非等間距分布。相鄰可表示數值之間的間距,即最後一位的單位(ULP),會隨數量級縮放: ULP(x)=2⌊log2∣x∣⌋−(p−1)\text{ULP}(x) = 2^{\lfloor \log_2 |x| \rfloor - (p-1)} 在 1 附近,間距即為機器 epsilon;在 1,000 附近約為其千倍。這正是為何浮點數維持固定的相對精度,卻在數值增大時喪失絕對精度。 計算範例 以雙精度與數值 1000 為例。指數為 ⌊log21000⌋=9\lfloor \log_2 1000 \rfloor = 9,因此: ULP(1000)=2 9−52=2−43≈1.14×10−13\begin{aligned} \text{ULP}(1000) &= 2^{\,9 - 52} = 2^{-43} \\ &\approx 1.14 \times 10^{-13} \end{aligned}ULP(1000)=29−52=2−43≈1.14×10−13 1000 附近的最大捨入誤差為其一半,約 5.7×10−145.7 \times 10^{-14}。因此,雙精度能區分 1000 與 1000.0000000000001,但無法區分在第十六位有效數字上才有差異的數值。 為什麼 0.1 並非精確值 二進位浮點數只能表示 2 的乘冪之和,而 0.1 沒有有限的二進位展開式,正如三分之一在十進位中沒有有限展開式一樣。因此它會被捨入至最接近的可表示數值,這也是為什麼在多數程式語言中 0.1 + 0.2 並不會剛好等於 0.3。其差異落在機器 epsilon 的數量級,通常無害,但會在長時間運算中累積,這也是為什麼金額常以整數或十進位型別儲存,而非以浮點數儲存。關於整數本身如何以二進位編碼,請參閱 二補數轉換計算。 常見問題(FAQ)什麼是機器 epsilon?機器 epsilon 是 1.0 與下一個大於 1.0 的浮點數之間的間距。它等於 2 的負次方,指數為尾數小數部分的位元數,以雙精度而言即為 2⁻⁵²,約等於 2.22 × 10⁻¹⁶。 機器 epsilon 衡量的是格式的相對解析度:任何實數儲存時的相對誤差都不會超過 epsilon 的一半。它是判斷某格式能可靠承載多少位數的標準量尺。 什麼是 ULP?ULP 是「最後一位的單位」(unit in the last place),亦即一個浮點數與其上方下一個可表示數值之間的距離。 與固定的機器 epsilon 不同,ULP 會隨數量級增長:在 1 附近,間距即為機器 epsilon;在 1,000 附近約為其千倍;在十億附近則更大。由於間距隨數值縮放,浮點數在整個範圍內維持大致固定的相對精度,而絕對精度則隨數值增大而下降。 為什麼 0.1 無法精確儲存?二進位浮點數只能表示 2 的乘冪之和。十進位小數 0.1 沒有有限的二進位展開式,正如三分之一沒有有限的十進位展開式一樣,因此它會被捨入至最接近的可表示數值,而該值略大於 0.1。 這也是為什麼在多數程式語言中 0.1 + 0.2 並不會剛好等於 0.3。誤差極小,大約落在機器 epsilon 的數量級,但會在多次運算中累積,這也是為什麼貨幣數值常以整數或十進位型別儲存。 每種格式能保留多少十進位位數?可靠的有效十進位位數約等於尾數小數部分的位元數乘以 2 的對數(約 0.301)。半精度約有 3 位,單精度約 7 位,雙精度約 15 至 16 位,四倍精度約 34 位。這些是能安全來回轉換的位數,若印出超過此範圍的位數,所暴露的是二進位表示法的捨入殘差,而非有意義的精度。