四捨五入 是指將一個書寫的數字縮短到所選定的小數位數,當無法保留精確值時,會在兩個最接近的候選值中擇一,而結果完全取決於您選擇的模式。若要正確進行四捨五入,您需選擇要保留的小數位數(從 0 到 20),選取五種命名模式之一(half up、half even、floor、ceiling 或 truncate),並將該規則套用於被捨棄的數字。使用 half up 時,1.235 在兩位小數會變成 1.24;使用 half even 時,2.5 在零位小數會變成 2,而 3.5 會變成 4。Floor 和 ceiling 不考慮最接近的結果,而是朝向負無限大或正無限大移動;truncate 則只是單純捨去數字並朝向零移動。這些選擇看似微不足道,直到您處理像 1.005 在兩位小數這樣的值——被捨棄的「5」會被視為真正的平局,而非二進位浮點數的近似值。這就是為什麼以文字而非底層雙精度浮點數來處理小數位數的工具,能產生大多數人預期的答案。

how to calculate rounding off
如何計算四捨五入:模式與步驟

五種四捨五入模式一覽

計算器中的每個四捨五入規則都由一個方向定義。Half up 和 half even 都會尋找最接近的結果;floor、ceiling 和 truncate 則不會。下表摘要說明每種模式、在精確平局時的移動方式,以及如何處理零位小數的負數輸入。

模式 方向 平局時的行為 1.235 在 2 位小數 −1.21 在 0 位小數
Half up 最接近 遠離零 1.24 −1
Half even 最接近 最後保留的數字為偶數 1.24 −1
Floor 朝向 −∞ 不適用 1.23 −2
Ceiling 朝向 +∞ 不適用 1.24 −1
Truncate 朝向零 不適用 1.23 −1

最右側的欄位凸顯了許多學習者常落入的陷阱:floor 和 truncate 對正數的結果一致(兩者皆為 1.23),但對負數輸入則會分歧(−2 對 −1)。任何將 floor 視為「捨去數字」的禮貌說法的人,一旦涉及負數,就會與嚴格定義產生不同的答案。

為何 Half Up 和 Half Even 會產生不同答案

Half up 和 half even 都會四捨五入到最接近的結果,因此在大多數輸入上是一致的。它們僅在被捨棄的數字恰好形成平局時才會分歧——也就是截止位數後的下一位數字為 5,且其後沒有其他非零數字。此時,half up 會將數值遠離零,而 half even 則會選擇最後保留數字為偶數的結果。

舉例來說,在零位小數時,2.5 在 half even 下會變成 2,3.5 則會變成 4,因為前者的最後保留數字(即個位數)是偶數,而後者是奇數。Half even 有時被稱為銀行家進位,因為當許多獨立進位的數字加總時,其平局處理規則傾向於互相抵消;在大型分類帳中,向上與向下的進位會相互平衡。這種統計上的優勢並不表示 half even 是每個財務、法律或科學情境下的正確原則。若您的組織或標準指定了某項規則,請遵循該規則。模式選擇器會為每個選項標示其方向,使選擇在任何輸出產生之前都保持可見。

1.005 背後的浮點數陷阱

常見的捷徑是先乘以 10n、呼叫內建的進位函數,再除回去。這個捷徑對某些輸入有效,但會在熟悉的邊界情況中失效,因為該小數值未必能以二進位浮點數精確儲存。例如,數字 1.005 會被儲存為略小於其值的二進位近似值。當該近似值乘以 100 並進位時,被捨棄的數字便不再是精確的 5,而是略小於 5 的微小值,結果便會得到 1.00。

進位計算器透過以文字形式處理小數位數來迴避這個問題。被捨棄的字元會被直接檢查,因此 1.005 的平局會被視為真正的 5,最後保留的數字會遞增,在 half up 下的答案便是 1.01。相同的方法也讓 999.999 在兩位小數時,於進位跨越小數點後變成 1000.00。這些處理過程都不需要上傳該數值;所有運算都在瀏覽器中完成,輸入的內容也不會被傳送到任何地方。

如何逐步進位一個小數

以下步驟將引導您使用進位計算器完成單一的進位任務。

  1. 在輸入欄位中輸入一個單純的小數。請勿包含逗號或科學記號——請輸入 1000.5 而非 1,000.5,並在貼上前將 1e3 展開為 1000。
  2. 使用精確度控制項,選擇介於 0 到 20 的小數位數。挑選您希望結果保留的小數位數。
  3. 選擇符合您規則的進位模式:half up、half even、floor、ceiling 或 truncate。
  4. 選擇進位數字。計算器會驗證輸入、檢查被捨棄的數字、對進位執行整數運算,並顯示格式化後的結果。
  5. 複製輸出,或將其與另一個工具產生的值進行比較。針對平局情況,請使用略高於和略低於平局的數值重複此步驟,以確認模式確實如預期般套用。

如果您也需要在試算表中執行此操作,在 Excel 中計算進位指南會逐步介紹與這些模式對應的工作表函數。

解讀輸出:精確度、尾隨零與負數

計算器會保留所要求的小數位數,包括尾隨的零,因此像 1000.00 這樣的答案所代表的精確度與 1000 不同。第一個結果表示原始值精確至百分位;第二個則僅表示其精確至個位。請在跨系統比較輸出時留意這一點——乍看之下相同的兩個答案之間,往往唯一的差別就是缺少的尾隨零。

輸入中的前導零會被正規化,量值為零的結果不會顯示負號。當所要求的精確度超過所提供的小數位數時,會自動補上額外的零,因此 5 在四位小數時會變成 5.0000 而非 5。這種行為是刻意的:輸出反映的是您所要求的精確度,而非您恰好輸入的精確度。

對於負值,正負號的處理取決於模式。Half up 會將量值遠離零,因此 −1.235 在兩位小數會變成 −1.24。Half even 遵循相同的規則,選擇最後保留數字為偶數的結果。Floor 會在有任何被捨棄數字非零時增加負值的量值,因此 −1.21 在零位小數會變成 −2。Ceiling 則會減少其量值,回傳 −1。Truncate 朝向零移動,因此 −1.99 在零位小數會變成 −1。

為您的使用情境選擇模式

下表將常見的進位情境與最常使用的模式配對在一起。它描述的是一個起點,而非規範——請務必遵循您團隊或司法管轄區所要求的標準。

情境 建議模式 原因
學校作業或教科書檢查 Half up 符合多數課堂教授的「四捨五入、平局進位」規則。
由獨立進位數值組成的長分類帳 Half even 可抵消許多平局相加時累積的向上偏差。
陣列索引、頁數計算,或「可容納多少個完整單位」的問題 Floor 計算完整單位數;小數部分會刻意捨棄。
最低費用、庫存補貨,或「預算上限」的問題 Ceiling 確保進位後的值永遠不會小於輸入值。
截斷一串數字,或顯示固定寬度欄位 Truncate 完整保留輸入的前段內容,不執行進位邏輯。

需要留意的限制

計算器最多接受 200 位數字以及最多 20 位所要求的小數位數,這讓貼上的大型輸入仍能保持回應速度,同時涵蓋一般的精確度檢查。輸入允許選擇性的正負號、數字以及一個小數點;前導零可以省略,因此 .5 是有效的。千分位分隔符號與科學記號會被拒絕,而非默默解讀,因此從試算表貼上數值的習慣,有時需要先進行快速的編輯。

進位會改變呈現方式,也可能改變底層的值,但並不會確立有多少位數字是真正有效的小數位數。小數位數是指小數點後的位置;有效位數則是從第一個非零數字開始計算有意義的位數。本工具僅處理小數位數。它不會解析貨幣、套用像 0.05 這類的現金進位增量、轉換分數、傳遞測量不確定性,或選擇稅務規則。對於一連串的計算,請在中間步驟保留完整精確度,並僅在您的方法指定的階段進位——重複對中間值進位可能會產生與僅對最終值進位不同的總和。方法論遵循 ICU 進位模式參考 與 Unicode TR35 第 3 部分:數字;這些文件說明了計算規則,但並未選擇商業政策。

相關閱讀:精準平均數計算器:平均數、中位數、眾數及其他。