首頁 › 數學計算 › 科學計算器
🔧

科學計算器

科學表達式計算器,冪與階乘、三角與對數、角度弧度切換、Ans 記憶與一行一式批次求值

① 表达式求值

三个约定:「%」就是把数字除以 100,所以 200×10% = 20,要「涨 10%」请写 200*(1+10%);相邻的量会自动相乘,2pi、3(4+1)、(2)(3) 都能算;函数括号可省,sin30 等同于 sin(30)。数字里的千分位逗号可用,如 1,000/8。

② 历史记录(点击任意一条可回到输入框)
还没有计算记录,算一次就会出现在这里
③ 一批表达式一起算

批量计算沿用 ① 里的角度单位与保留位数设置;Ans 在批量模式下取上一次单条计算的结果。每行必须是完整表达式,不能只写运算符。

工具介紹

普通計算器算不了 12!/(5!*7!),線上語言裡的 eval 又不敢用。這個工具把表達式解析成詞法與後綴式再求值,輸入什麼就算什麼,並把每一步口徑寫清楚:

  • 完整表達式求值:四則、括號、冪、階乘、百分號、取餘混寫都可以,2+3*4 得 14,(2+3)*4 得 20,(2+3)*sqrt(16)/2^3 得 2.5
  • 科學與工程寫法:1e3+1 得 1001、2E-2 得 0.02、1,000,000/8/7 認千分位逗號得 17857.1428571
  • 可以省括號與乘號:2pi = 6.28318530718、3(4+1) = 15、sin30 等同 sin(30)、√9 = 3、∛(-27) = -3
  • 角度制與弧度制一鍵切換:DEG 下 sin(30) = 0.5、acos(0.5) = 60;切到 RAD 後 sin(30) = -0.988031624093,反三角的輸出單位也同步變化
  • 結果的多重表達:同時給出千分位結果、雙精度原始值、科學計數法、整數部分、小數位數、三種取整與最簡分數近似
  • Ans 與記憶鍵:Ans 引用上一次結果,存 MS/取 MR/清 MC 做分步運算,「把結果接進新表達式」可直接續算
  • 歷史記錄:最近 20 條算式與結果,點任意一條回到輸入框改數字重算
  • 批次求值:一行一個表達式一起算,某一行出錯不影響其他行,出錯原因寫在同列說明欄
  • 異常都講原因:括號未閉合會說明還差幾個右括號,1/0、√-4、ln(0)、tan(90)、171!、(-8)^0.5 各有對應的提示

使用情境

  • 把長算式一次寫清:組合數、等比數列求和、複利終值這類連鎖按鍵算不了的式子
  • 驗證公式:先手算再讓工具複核,避免括號與優先級寫錯
  • 批次核對一組資料:從表格或筆記貼一批表達式逐行出結果
  • 教學示範:解釋冪右結合、負號與開方的優先級、角度制與弧度制的差別
  • 工程與統計:雙曲函數、以 2 為底的對數、取餘與階乘混合使用

支援的寫法

寫法含義實測結果
2+3*4先乘後加14
2^10 與 2**10冪,兩種寫法等價1024
2^3^2冪右結合,先算 3^2512(不是 64)
-2^2冪優先於一元負號-4,寫 (-2)^2 才是 4
5! 與 fact(5)階乘120
10% 與 200*(1+10%)百分號即除以 1000.1 與 220
100 mod 7取餘2
12!/(5!*7!)組合數直接寫792
3(4+1)、2pi、(2)(3)相鄰的量自動相乘15、6.28318530718、6
1,000/8千分位逗號125
sin30 + 1無括號函數只吃掉緊跟的那個數1.5(不是 sin(31))
ans*2引用上一次結果上一次為 21 時得 42

運算優先級由先到後

  • 括號 ( ):改變優先級最直接的方式,未閉合時會提示還差幾個右括號
  • 後綴運算 ! %:緊貼前面的數,2^3! 是 2^6 = 64
  • 冪 ^:右結合,比一元負號更緊
  • 一元正負號 -3、+5:可以連續寫,3 - -2 = 5
  • 乘、除、取餘 * / mod:含隱式乘法,左結合
  • 加、減 + -:最低,左結合,100-20-30 = 50

函數與常數

類別名稱已核對的例子
三角與反三角sin cos tan asin acos atanDEG:cos(60)+sin(30) = 1、asin(0.5) = 30
雙曲sinh cosh tanhcosh(0) = 1、sinh(0) = 0
冪與根^ ** sqrt √ cbrt ∛9^(1/2) = 3、sqrt(144)+3^2 = 21
對數與指數ln log lg log10 log2 explog(1000)+ln(e) = 4、log2(1024) = 10
取整與符號abs round floor ceil signround(2.5)+floor(2.5)+ceil(2.5) = 8
階乘與取餘! fact mod5!+3! = 126、10 mod 3 = 1
角度換算degrees radiansdegrees(pi/3) = 60、radians(180) = pi
常數pi π e phi φ tauπ = 3.14159265359、e = 2.71828182846、φ = 1.61803398875、tau = 6.28318530718

常見問題

  • 為什麼 -2^2 等於 -4?數學裡 −x² 表示 −(x²),冪比一元負號先算。想讓負數自乘要寫 (-2)^2 = 4;同一條規則也解釋了 2^3^2 = 512 而不是 64
  • 為什麼結果 0.3,原始值卻是 0.30000000000000004?這是雙精度浮點的固有表示誤差。自動模式取 12 位有效數字後再歸一,把雜訊壓掉;sqrt(2)*sqrt(8) 顯示 4 而原始值是 4.000000000000001,同一原因。要看真實誤差請對照「原始值」那一行
  • 角度制還是弧度制?預設角度制,sin(30) = 0.5;選弧度制後 30 被當作 30 弧度,sin(30) = -0.988031624093。反三角函數的輸出單位跟著走,acos(0.5) 在角度制下是 60;degrees 與 radians 這兩個函數不受開關影響,始終按弧度定義換算
  • sin(pi) 為什麼不是 0?結果是 1.224647e-16。π 只能用近似值表示,而正弦在 π 附近的變化率約為 −1,輸入誤差幾乎原樣變成輸出誤差。判斷是否為 0 要設容差,而不是期待整數
  • 階乘最大能算到幾?170! = 7.257416e+306,已經貼近雙精度上限約 1.8e308,171! 會直接報溢位;小數與負數階乘不做(那需要 Gamma 函數與複數支援)。組合數這類整數比值可以在溢位前先相消,寫成 12!/(5!*7!) = 792 是安全的
  • 百分號是什麼口徑?把數除以 100:10% = 0.1,200×10% = 20。要「漲 10%」得寫 200*(1+10%) = 220;每月漲 10% 一年下來的總漲幅是 (1+10%)^12-1 = 2.13842837672,即 213.84%
  • 它會不會執行我輸入的程式碼?不會。解析流程是先詞法切分、再補隱式乘法、然後用調度場演算法轉成後綴式逐條求值,全程沒有 eval 也沒有動態建構函式,字母只認已登記的函數名與常數,其餘一律拒絕並指出位置
  • 哪些寫法不支援?不支援多參數函數(要底數就寫 log2(8) 或 log(8)/log(2))、不支援變數賦值與自訂函數、不處理複數與無窮符號、不支援求和連乘記號;1e3 會被辨識為 1000,想要 1×e×3 請寫 1*e*3

配套工具:要把結果寫回精確分數做四則運算用分數計算,算佔比與漲跌幅用百分比計算,把複利終值展開成逐年明細用複利計算器,換算量綱用單位換算。表達式與結果都只在瀏覽器裡處理,不上傳伺服器。