🧮 線上計算器 — 免費,支援歷史記錄與鍵盤支援
Toolio 的計算器可處理加、減、乘、除和百分比,並可保存瀏覽器中最近 50 個結果的可滾動歷史記錄 — 沒有任何科學計算功能,也沒有括號或記憶鍵(M+、M-、MR),因為這些按鈕在介面中並不存在。這裡沒有運算子優先順序解析器,螢幕上的按鈕每次只執行一個運算,因此按下 2 + 3 x 4 = 的行為會像一般桌面計算器一樣,返回 20,而不是嚴格遵循代數運算順序所得到的 14。每個結果在顯示前都會四捨五入到 12 個有效數字,因此 0.1 + 0.2 會顯示乾淨的 0.3,而不是 JavaScript 原始的 0.30000000000000004。
Toolio 的計算器是一款基於瀏覽器的四則運算計算器 — 加、減、乘、除和百分比,具有 50 個記錄的歷史功能,並支援完整鍵盤操作,完全離線運行。
隱私優先設計. 此工具完全在您的瀏覽器中執行,您輸入的內容不會上傳,且可離線使用。
關於
這個計算器的功能與限制
按鈕方塊提供 AC、退格、百分比、除法、乘法、減法、加法、數字 0-9、小數點、正負號鍵和等於號:這就是完整的功能集。沒有平方根、指數、三角函數、括號或記憶體暫存器;如果您需要這些功能,這不是合適的工具。鍵盤與按鈕相對應:數字鍵、+、-、*(或 x 鍵)、/、Enter 或 = 用於等於、退格、Escape 用於清除、% 用於百分比,所有這些都連接到一個單一的監聽器,當您在頁面上任何其他輸入欄位輸入時,這個監聽器會自動讓開。如果您在預期數字的地方輸入 -,系統會開始一個負數,因此 5, x, -, 3, =,系統會顯示 -15,而正負號鍵會翻轉螢幕上顯示的數字的符號。
數學運算方式
運算子的優先順序與大多數人從「計算器」中預期的有所不同。工具不會保留您輸入的整串運算式,只記住一個待處理的左值和一個運算子,並在下一個運算子或 = 輸入的當下立刻算出這一步。具體來說:當您按下 2, +, 3, x, 4, = 時,以下是逐步發生的過程:當您按下 + 時,系統會將 2 存為待處理的左值;當您按下 3 時,系統會設定下一個數字;當您按下 x 時,系統會強制立即評估待處理的 2 + 3(因為在結果仍待處理時到達了一個新的運算子),得到 5,這會成為新的左值;當您按下 4 時,系統會設定下一個數字;當您按下 = 時,系統會評估 5 x 4 並顯示 20。如果計算器對整個輸入鏈應用完整的運算順序,系統會顯示 14(2 + 12)而不是 20。這種鏈式行為與一般四則運算計算器(大多數手機標準模式內建的那種)相符,而不是科學或運算式計算器,這也是類似工具產生「錯誤答案」報告的最常見來源。
浮點數處理是另一個導致可見數字與原始計算數字產生差異的地方。二進位浮點數無法精確表示大多數十進位分數,因此 JavaScript 會將 0.1 + 0.2 計算為 0.30000000000000004,以及 100 x 1.1 計算為 110.00000000000001。結果會以完整的精準度保留,只在顯示時四捨五入到 12 個有效數字,這會讓這兩個結果靜默地轉換回人類預期的 0.3 和 110,並讓像 8 ÷ 3 × 3 這樣的鏈式運算結果精確顯示為 8,而不是基於四捨五入後的 2.66666666667。不過,這種修正也有實際的限制:像 999999999999999 這樣的 15 位數字,同樣的 12 位數限制會將其向上四捨五入到 1000000000000000,這會讓一個精確的整數變成另一個精確的整數,純粹是因為顯示四捨五入,而不是浮點數的缺陷,而是實際輸入值的真正損失。一旦結果的數量級達到約 1e21,JavaScript 的數字格式會切換到指數表示法(1e+21),不管 12 位數四捨五入會顯示什麼。
一些較小的防護措施補充了行為:除以零時,系統會在內部觸發錯誤,顯示幕會顯示本地化的「錯誤」訊息,而不是無限大或 NaN,並清除待處理的運算,讓您可以重新開始;在輸入時,原始數字輸入最多限制為 15 個字元(退格鍵仍然可以正常操作,直到只剩下一個 0);如果您再次按下 =,系統會重複最後一次運算(7, +, 3, = 然後再按下 = 兩次會顯示 10, 13, 16);百分比取決於待處理的運算:在 + 或 - 之後按下 % 時,系統會計算儲存的左值的百分比(200, +, 10, % 會顯示 20,因此之後按下 =,系統會顯示 220),而在 x 或 / 之後或單獨按下時,系統會將當前顯示的數字除以 100(200, x, 10, % =,系統會顯示 20;200, /, 10, % =,系統會顯示 2000)。
計算歷史:最近 50 次,儲存在您的瀏覽器中
歷史記錄會在瀏覽器的 localStorage 中保存您最近的 50 次計算,並在這個工具自己的命名空間下;第 51 次輸入會靜默地刪除最舊的條目。當您點選任何歷史記錄列時,系統會將該結果召回顯示幕並顯示其運算式列,讓您可以繼續在其基礎上進行計算,而當您清除歷史記錄時,系統會立即刪除清單,並顯示一個確認訊息。因為這是 localStorage,歷史記錄與這台設備上的這個特定瀏覽器相關:它不會在私密/無痕模式下打開的標籤頁之間同步,也不會在瀏覽器之間或設備之間同步。
如何使用
- 使用鍵盤或點選螢幕上的數字按鈕輸入數字。
- 請按下 +、-、x 或 /(或對應的鍵盤鍵)來選擇運算;如果您按下第二個運算子,系統會立即評估待處理的運算。請按下 ±(或在預期數字的地方輸入 -)來輸入負數。
- 請使用 % 來計算百分比:在 + 或 - 之後,系統會計算儲存值的百分比(200, +, 10, % 然後 =,系統會顯示 220);在 x 或 / 之後或單獨按下時,系統會將當前顯示的數字除以 100(200, x, 10, % 然後 =,系統會顯示 20)。
- 請按下 Enter 或 = 來查看最終結果:結果會自動儲存到歷史記錄中,並四捨五入到 12 個有效數字以供顯示。如果您再次按下 =,系統會重複最後一次運算。
- 點選歷史面板中的任何條目,可以恢復該結果及其運算式,然後繼續計算。
- 按下 Escape 或點選 AC 來清除所有內容,或按下 Backspace 來刪除最後輸入的數字。
常見問題
- 0.1 + 0.2 這裡實際上顯示的是 0.3,還是通常的浮點數混亂?
- 這裡顯示的是乾淨的 0.3。JavaScript 會將原始總和計算為 0.30000000000000004,因為二進位浮點數無法精確表示 0.1 或 0.2,但這個計算器會在顯示前將每個結果四捨五入到 12 個有效數字,這會隱藏這種缺陷,讓日常數字看起來乾淨。
- 如果我輸入 2 + 3 x 4 =,會得到 14 還是 20?
- 你會得到 20。當按下運算子時,如果之前還有待處理的運算,會立即評估那個待處理的步驟(2 + 3 = 5),然後下一個運算子會應用到這個結果(5 x 4 = 20)。這是普通四則運算計算器的標準行為,而不是錯誤 — 如果是科學計算器對輸入的鏈條應用完整的運算順序,會得到 14。
- 有科學模式、括號或記憶鍵(M+/M-/MR)嗎?
- 沒有。這是一款四則運算計算器,加上百分比和歷史功能 — 介面中沒有三角函數、指數、平方根、括號或記憶寄存器。如果你需要這些功能,這個特定工具不是為此設計的。
- 它會上傳我的計算嗎?
- 不會。所有的計算都在你的瀏覽器中進行,歷史記錄只保存在瀏覽器的 localStorage 中。沒有任何內容會上傳到伺服器,而且這個工具即使在完全沒有網路連接的情況下也能正常運作。
- 對於非常大或非常精確的數字會發生什麼?
- 結果在顯示前會四捨五入到 12 個有效數字,這可能會靜默地改變一個精確的大整數 — 例如,15 位數的 999999999999999 會顯示為 1000000000000000。一旦結果的數量級達到約 1e21,顯示會切換為指數表示法(如 1e+21),不管四捨五入會顯示什麼。
- 如果我除以零會發生什麼?
- 計算器會明確地捕捉到這個錯誤,並顯示本地化的「錯誤」訊息,而不是 Infinity 或 NaN,然後清除待處理的運算,讓你可以立即開始新的計算。
- 此工具會上傳我的資料嗎?
- 不會。所有運作都在您的瀏覽器中進行,因此您的資料永遠不會離開您的設備 — 頁面載入後,它甚至可以在離線狀態下使用。