單位轉換器無法知道您的輸入有多精確
在單位轉換器中輸入「12.5」,它會乘以一個儲存於計算機中雙精度精度達到15或16位數字的因子,然後返回一個格式化到多個小數位的結果。這個算術計算本身沒有問題。問題在於將輸出當作比輸入更可靠,因為轉換器無法知道「12.5」究竟是指精確的12.500000…還是卷尺量測得到的結果,精確度只有三個有效數字。本網站自己的方法論頁面說明了顯示政策——最多8個小數位、末尾零被去除、在大約1e-6到1e9範圍之外使用科學記號法。這是一個格式化規則。它對某個特定輸入中哪些顯示的數字是有意義的毫無說明,這個判斷只能由持有原始測量資料的人做出。
「有效數字」實際上是什麼
有效數字是一個攜帶有關測量量真實資訊的數字,與只是標記數字大小尺度的數字相對。在0.0250中,前兩個零不是有效數字——它們只是確定小數點位置——但5後面的末尾零是有效的,因為有人選擇寫出它,這暗示該數值已知到第四位數字,而不是說0.02有一個未說明的進位舍入。不使用小數點記號法時會引入歧義:「200 kg」可能意味著精確到三個有效數字,也可能只是一個粗略的數字只精確到一個有效數字。科學記號法完全消除了這種歧義——2 × 10² kg對比2.00 × 10² kg無法被誤讀。
兩種不同的規則,取決於運算類型
結合測量量時精度的喪失方式取決於運算是乘法性的還是加法性的,應用錯誤的規則是常見的錯誤:
- 乘法和除法(這是每次單位轉換的情況):結果的有效數字不超過最不精確的輸入。將一個精確到3個有效數字的長度轉換為不同的單位仍然使您留下3個有效數字的真實資訊,無論算術產生多少位數字。
- 加法和減法:結果的小數位不超過最不精確的輸入,無論有效數字數量如何。12.5 m + 0.084 m受第一項限制於一個小數位,給出12.6 m,而不是12.584 m。
單位轉換總是第一種情況:數值 × 因子。因子本身的精度也很重要,這正是「精確定義」變得重要的地方。
精確定義的因子不會讓您喪失有效數字;測量得到的因子會
乘以一個精確的轉換因子——1英吋 = 2.54厘米精確,1磅 = 0.45359237公斤精確——不會降低精度,因為精確定義的數字不攜帶自身的不確定性;該因子的每一位數字都可供使用。測量得到的轉換因子則不同:在1983年根據光速重新定義米之前,光速本身是一個帶有實驗不確定性的測量量,任何使用它的計算都會像繼承測量長度的不確定性一樣繼承那種不確定性。1983年後,光速精確固定為299,792,458 m/s,這是定義所決定的,對從它計算出的任何東西的額外不確定性貢獻為零。這個道理是通用的:轉換精度的限制因素幾乎總是測量的輸入,而不是儲存的常數,條件是常數確實是精確的。本網站使用非精確的、取決於上下文的數字的地方——方法論頁面上記錄的碳排放係數是最清晰的例子——那個數字,而不是算術,才是實際的精度上限。
實例:轉換房間測量
一間房間用卷尺測量為12.5英尺乘10.25英尺——分別有三個和四個有效數字,這是典型的卷尺以最近四分之一英吋為單位讀取長牆,較短的牆測量時稍微更仔細。使用精確因子1英尺 = 0.3048米轉換每一邊到米:
| 測量 | 有效數字 | 原始乘積 | 正確進位舍入 | 虛假精確(典型計算機顯示) |
|---|---|---|---|---|
| 12.5 ft × 0.3048 | 3 | 3.81 m | 3.81 m | 3.81000000 m |
| 10.25 ft × 0.3048 | 4 | 3.1242 m | 3.124 m | 3.12420000 m |
| 面積:3.81 m × 3.124 m | 3(受3個有效數字邊的限制) | 11.90244 m² | 11.9 m² | 11.90244000 m² |
面積數字是重要的:計算機會樂意報告11.90244 m²,八位數字精度僅從浮點算術對測量品質毫無意見這一事實繼承而來。卷尺從未支持其較短讀數超過三個有效數字,所以誠實的答案是11.9 m²——其他五位數字是算術雜訊,不是關於房間的資訊。
誤差實際上如何複合:連鎖轉換
單個乘以精確因子的乘法不會增加誤差。轉換鏈仍然可能喪失精度,但機制是中間步驟的進位舍入,而不是轉換本身。將12.5英尺轉換為米,將該結果進位舍入到3.81 m,然後將3.81 m轉換為毫米得到3,810 mm——看起來與直接將12.5英尺轉換為毫米(3,810.0 mm)相同,因為在這種情況下中間進位舍入碰巧落在一個整數上。它不總是那麼整齊:首先將10.25英尺進位舍入到米位小數點兩位(3.12 m,丟棄真實的3.1242 m),然後將該進位舍入的數字轉換到計算與3.81 m邊的面積,面積得出3.81 × 3.12 = 11.8872 m²——與從通過完整精度並只在最後進位舍入一次獲得的11.90244 m²不同的第四個有效數字。在3個有效數字處(任一方式為11.9 m²)絕對意義上,兩個數字都不是「更錯誤的」,但差異在更長的鏈中每增加一個額外進位舍入的中間步驟就會增長,這正是為什麼本網站在完整浮點精度下儲存每個因子,並且從不在中間進位舍入,只在最終顯示步驟進位舍入。
實用規則
通過計算的每個中間步驟保留完整精度,並精確在最後進位舍入一次,至您最不精確的輸入實際支持的有效數字數量。顯示八個小數位的轉換器並不是聲稱您特定輸入的八個小數位的實際精度——它是拒絕猜測您需要這些數字中的多少,這是讀者要做的判斷,而不是工具的。