计算工具 · 数学计算

科学计算器

三角/对数/阶乘/进制/内存键

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 55 次使用
( 0 / ) 0 精度
0
0

粘贴或输入整段表达式 · sin(30)+cos(60)*sqrt(2) / 2^10-5! / log(100)/log(2)
常量 pi e phi c h G N_A;函数 sin cos tan asin… ln log log2 sqrt cbrt abs exp floor ceil round sign

就绪
表达式结果
0

任一行输入即实时同步其余三行 · 最大支持 2⁵³−1(JS 安全整数)· 位宽显示供位运算参考

DEC 0 位
HEX 0 字符
OCT 0 位
BIN 0 位

输入数据集 · 支持空格 / 逗号 / 换行 / 分号 / 中文标点分隔 · 自动忽略非数字

样本数 n
0
总和 Σx
0
平均 μ
0
中位数
0
众数
-
极差 R
0
方差 σ²(总体)
0
方差 s²(样本)
0
标准差 σ(总体)
0
标准差 s(样本)
0
最小值
0
最大值
0
Q1 下四分位
0
Q3 上四分位
0
ax + b = 0 → x = −b / a
请输入系数
ax² + bx + c = 0 → Δ = b² − 4ac
请输入系数
a₁x+b₁y=c₁ · a₂x+b₂y=c₂ → 克拉默法则
请输入系数
ax³ + bx² + cx + d = 0 → 卡尔丹诺公式(含复根)
请输入系数
选择单位后显示换算结果

点击任一常量即载入到科学计算器表达式末尾

就绪 · 零 eval 自写解析器 · 全本地计算 DEG · 自动精度
历史记录

暂无记录 · 计算后自动存入,点击可载入

键盘 / 使用提示

键盘0-9 . + - * / ( ) % ^ 直接输入 · Enter= 计算 · Backspace 删除 · Esc 清空;表达式面板用 Ctrl/⌘ + Enter

角度:DEG 下 sin(30)=0.5,RAD 下 sin(pi/6)=0.5,GRAD 下 sin(33.33…)≈0.5;切换立即重算

第二功能 2nd:切换替代标签(sin→sin⁻¹ / log→10ˣ / √→∛ / x²→x³ / n!→1/x 等)

内存MS 存入 / MR 读取 / M+ 累加 / M− 减 / MC 清空

进制:四进制实时互转,任一框输入即同步其余三个,最大 2⁵³−1

统计:粘贴任意分隔数字串,自动跳过非数字,同时计算样本与总体两套方差/标准差

方程:四类常用方程一键求解,含复根;二元一次走克拉默法则

单位:9 大类 60+ 单位实时换算,温度走零点偏移公式

历史:最近 50 条本地存储,点击载入主表达式,支持导出 CSV / TXT

第一节

关于本工具

About

考试里按计算器最容易出错的瞬间,是 sin(π/6) 按成 sin(30) 却不知道弧度制没切换。这个科学计算器把三角、对数、阶乘、进制转换和内存键都放在一个页面,输入即算,不依赖后端。浏览器本地执行,算式和结果不会离开设备——适合考试前速算复核、编程时进制互查、工程现场快速验算,不联网也能用。

使用场景

进制转换校验

嵌入式开发调试串口协议,手册给的寄存器地址是十六进制 0x3FF,但逻辑分析仪抓到的报文是二进制 1111111111。手算怕错,用本工具的进制转换功能,输入十六进制立即得到二进制、八进制和十进制结果,三方对照确认无误,避免因进制误读导致寄存器写错地址。

对数浓度计算

生物实验配制梯度稀释液,需要将母液按 1:10、1:100、1:1000 稀释,每次稀释后浓度是前一次的 0.1 倍。用本工具计算 log₁₀(0.1) = -1,连续三次稀释后 log₁₀(浓度) 依次递减 1,直接在工具里输入数值验证稀释倍数是否准确,免去纸笔推导对数表的繁琐。

阶乘排列估算

活动策划要排 8 个嘉宾的出场顺序,总排列数是 8! = 40320 种。但其中 3 位嘉宾必须连在一起出场,实际有效排列数为 6! × 3! = 4320 种。用本工具分别计算 8!、6!、3!,快速得到两种方案的数量差,据此决定是否需要抽签或按规则筛选,避免人工枚举漏算。

三角函数放样

装修现场要做一个 30° 斜角的电视背景墙,墙面总宽 3 米。用本工具计算 sin(30°) = 0.5,斜边长度 = 3 ÷ 0.5 = 6 米,直接得到板材切割尺寸。不用翻手机查三角函数表,也不用现场画图量角,输入角度立即出值,下料时按计算结果划线即可。

内存键值统计

Redis 实例中 key 数量接近 10 万,需要估算每个 key 平均占用字节数。用本工具的内存键功能,输入总内存占用 512MB 和 key 总数 100000,得到平均每个 key 约 5.12KB。再结合 key 的 TTL 分布,判断是否需要做数据淘汰或扩容,比用 Excel 手动除更快。

对比矩阵

维度本工具竞品 A(CalcTastic)传统方法(实体计算器)
计算类型三角/对数/阶乘/进制/内存键科学函数 + 统计/概率/矩阵基础四则 + 少数科学函数(视型号)
进制转换内置二进制/八进制/十进制/十六进制切换需切换模式或手动换算仅部分工程型支持
内存键支持 M+ M- MR MC 等标准内存操作支持,但部分版本需长按物理按键直接操作
离线可用完全离线(纯前端)需下载安装(离线可用)完全离线(物理设备)
平台兼容浏览器打开即用(PC/手机/平板)仅 Android/iOS 应用单一物理设备
输入方式键盘 + 鼠标点击触屏点击物理按键按压
历史记录无(纯计算器,不保存)部分版本有计算历史
第二节

使用指南

Getting Started

使用步骤

  1. 1在数字输入区键入数值(如 45),按「sin」键立即显示正弦结果,无需等号
  2. 2按「log」键计算常用对数,按「ln」键计算自然对数,结果直接显示在屏幕
  3. 3按「x!」键计算阶乘,输入整数后结果即时输出,小数自动取整
  4. 4按「DEC」键切换进制模式,输入十进制数后自动显示二进制、八进制、十六进制结果
  5. 5按「M+」将当前结果存入内存,按「MR」随时调出,按「MC」清除内存值

输入输出示例

输入输出说明
sin(π/2)1常规:验证三角函数弧度制精度,π/2 的正弦值应为精确 1
cos(0)1常规:余弦零度角,检查角度模式(弧度/度)默认行为
log(100)2常规:常用对数(底数 10),验证对数函数默认底数
0!1边界:阶乘定义边界,0 的阶乘按数学定义为 1,非零
10^308Infinity边界:双精度浮点数上溢,验证工具对大数的处理方式
sin(π)0易错:π 的精确值受浮点精度影响,实际输出可能为 1.224e-16 而非严格 0,需注意工具是否做四舍五入
log(-1)Error 或 NaN易错:负数对数在实数域无定义,检查工具是否给出明确错误提示

常见错误对照

1.三角函数默认角度制,输入弧度未切换

✗ 错误计算 sin(3.14159),期望得到 0,但得到约 0.0548
✓ 修复确认工具当前为弧度制(RAD 模式)后输入 sin(π),或手动计算 sin(3.14159) 后接受约 0.0548 的结果

科学计算器默认角度制(DEG),sin(180°) = 0,但 sin(180 rad) ≈ -0.801。用户必须检查模式标识(DEG/RAD/GRAD)后再输入。

2.对数底数混淆,log 误作常用对数

✗ 错误计算 log(100),期望得到 2(常用对数),但工具返回 ln(100) ≈ 4.605
✓ 修复输入 log10(100) 或 log(100, 10) 得到 2

不同计算器对 log 的默认底数定义不同。本工具 log 无底数时默认自然对数 ln,需显式指定底数才能得到常用对数(lg)。

3.阶乘运算超出整数安全范围

✗ 错误计算 171!,结果溢出显示 1.#INF 或错误
✓ 修复计算 170!,结果为 7.257415615307994e306(仍在双精度浮点数范围内)

IEEE 754 双精度浮点数最大可表示约 1.79e308。171! ≈ 1.24e309 已超出此范围,导致正无穷溢出。

4.进制转换时输入了非法字符

✗ 错误在十六进制模式下输入 1G,期望得到 31(十进制),但工具无响应或报错
✓ 修复在十六进制模式下输入 1F,得到 31(十进制)

十六进制只接受 0-9 和 A-F(大小写均可)。G 不是有效数字,工具无法解析,会触发输入验证失败。

5.内存键(M+)累加时未先清零

✗ 错误按 M+ 存储 5,再按 M+ 存储 3,按 MR 显示 8(正确),但期望只显示 3
✓ 修复先按 MC 清除内存,再按 M+ 存储 3,按 MR 显示 3

M+ 是累加操作(memory add),将当前值加到内存已有值上。要覆盖存储需先用 MC 清零或使用 M(memory store)键。

6.科学计数法输入时漏写指数符号

✗ 错误输入 1e5,工具解析为 1 × e × 5(其中 e 为自然常数 2.718...),得到约 13.59
✓ 修复输入 1E5 或 1e5(取决于工具是否区分大小写),得到 100000

部分计算器将小写 e 视为自然常数 2.718...,而非科学计数法标记。需确认工具是否要求大写 E 或专用按钮(EXP/EE)。

7.连续运算时忽略运算符优先级

✗ 错误输入 2 + 3 × 4,期望得到 20(从左到右),但工具返回 14
✓ 修复输入 (2 + 3) × 4 得到 20,或直接接受 2 + 3 × 4 = 14

标准科学计算器遵循先乘除后加减的运算优先级,不是简单从左到右计算。用户需用括号明确运算顺序。

8.负数的偶数次方根输入错误

✗ 错误输入 √(-4) 或 (-4)^(1/2),工具返回 NaN 或错误
✓ 修复输入 4i(复数模式)或使用复数运算功能;若仅需实数结果,输入 √4 = 2

实数范围内负数没有偶数次方根。工具若未启用复数模式,会返回 Not a Number。用户需切换复数模式或理解实数域限制。

第三节

工作原理

How It Works

核心公式

n! = n × (n-1) × (n-2) × … × 1

变量说明

  • n非负整数,阶乘的底数

示例

计算 7!:7×6×5×4×3×2×1 = 5040。在科学计算器中输入 7 后按阶乘键,结果即 5040。

输入表达式sin(30) / 5! / 0xFF词法分析拆分数字、运算符、函数语法解析构建运算树(AST)求值递归计算内存键操作M+ / M- / MR / MC进制转换DEC ↔ HEX ↔ BIN ↔ OCT特殊函数计算阶乘 / 对数 / 三角函数结果显示输出所有计算均在浏览器本地完成,数据不上传服务器
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

4 种主流语言实现,复制即用:

import math # 科学计算器核心功能:三角函数、对数、阶乘、进制转换 # 示例:计算 sin(30°) + log10(100) + 5! + 十六进制 255 def scientific_calc(): # 三角函数(弧度转角度) angle_deg = 30 sin_val = math.sin(math.radians(angle_deg)) # 0.5 # 对数 log_val = math.log10(100) # 2.0 # 阶乘 fact_val = math.factorial(5) # 120 # 进制转换(十进制 -> 十六进制) hex_val = hex(255) # '0xff' print(f"sin({angle_deg}°) = {sin_val}") # 0.5 print(f"log10(100) = {log_val}") # 2.0 print(f"5! = {fact_val}") # 120 print(f"255 in hex = {hex_val}") # 0xff scientific_calc()
// 科学计算器核心功能:三角函数、对数、阶乘、进制转换 // 示例:计算 cos(60°) + ln(e^2) + 4! + 二进制 42 function scientificCalc() { // 三角函数(弧度转角度) const angleDeg = 60; const cosVal = Math.cos(angleDeg * Math.PI / 180); // 0.5 // 自然对数 const lnVal = Math.log(Math.E ** 2); // 2.0 // 阶乘(递归实现) const factorial = n => n <= 1 ? 1 : n * factorial(n - 1); const factVal = factorial(4); // 24 // 进制转换(十进制 -> 二进制) const binVal = (42).toString(2); // '101010' console.log(`cos(${angleDeg}°) = ${cosVal}`); // 0.5 console.log(`ln(e^2) = ${lnVal}`); // 2.0 console.log(`4! = ${factVal}`); // 24 console.log(`42 in binary = ${binVal}`); // 101010 } scientificCalc();
package main import ( "fmt" "math" "strconv" ) // 科学计算器核心功能:三角函数、对数、阶乘、进制转换 func main() { // 三角函数(角度转弧度) angleDeg := 45.0 tanVal := math.Tan(angleDeg * math.Pi / 180) // 1.0 // 以2为底的对数 log2Val := math.Log2(32) // 5.0 // 阶乘(循环实现) factVal := 1 for i := 1; i <= 6; i++ { factVal *= i } // 720 // 进制转换(十进制 -> 八进制) octVal := strconv.FormatInt(64, 8) // "100" fmt.Printf("tan(45°) = %.1f\n", tanVal) // 1.0 fmt.Printf("log2(32) = %.1f\n", log2Val) // 5.0 fmt.Printf("6! = %d\n", factVal) // 720 fmt.Printf("64 in octal = %s\n", octVal) // 100 }
// 科学计算器核心功能:三角函数、对数、阶乘、进制转换 fn main() { // 三角函数(角度转弧度) let angle_deg = 90.0_f64; let sin_val = angle_deg.to_radians().sin(); // 1.0 // 自然对数 let ln_val = 20.0_f64.ln(); // ≈2.9957 // 阶乘(迭代实现) let n = 7u128; let fact_val = (1..=n).product::<u128>(); // 5040 // 进制转换(十进制 -> 二进制) let bin_val = format!("{:b}", 10); // "1010" println!("sin(90°) = {}", sin_val); // 1 println!("ln(20) = {:.4}", ln_val); // 2.9957 println!("7! = {}", fact_val); // 5040 println!("10 in binary = {}", bin_val); // 1010 }
第五节

常见问题

Q & A
我想算 sin(30) 结果怎么是 0.5?不是应该等于 0.866 吗?

检查一下角度模式。科学计算器默认用弧度制,sin(30 弧度) ≈ -0.988,而你得到 0.5 说明当前是角度制(DEG 模式)。本工具在输入框上方有「DEG / RAD / GRAD」切换按钮,点击切换到 RAD 再试 sin(30) 就会得到 -0.988。如果算三角形边长,记得先确认题目给的是角度还是弧度。

为什么我按 log(100) 只出来 2,但我想算 log2(100) 怎么弄?

本工具默认 log 是常用对数(以 10 为底),log(100) = 2 正确。要算以 2 为底的对数,用换底公式:log2(100) = log(100) / log(2)。输入 log(100) ÷ log(2) 即可得到约 6.6439。或者直接使用「log_2」按钮(如果有的话),它内置了换底计算。不同底数对数不能混淆,否则结果差很多。

我输入 10^100 算出来显示 1e+100,这个结果准不准?

1e+100 是科学计数法,表示 1 × 10^100,完全准确。本工具采用 JavaScript 双精度浮点数(64 位),能精确表示约 10^-308 到 10^308 之间的数字。对于 10^100 这样的整数,在 15 位有效数字内完全精确。但如果做 10^100 + 1 再减 10^100,结果可能是 0 而非 1,因为大数运算会丢失小数精度——这是浮点数通用限制,不是本工具的问题。

阶乘算 100! 结果显示 9.33262154439441e+157,后面的小数点是精确的吗?

不精确。100! 是一个 158 位的整数,但双精度浮点数只能保留约 15-16 位有效数字,所以后面的「39441」是近似值,实际末尾还有 140 多位数字。本工具对超出精度的大数结果采用科学计数法显示,并标注「近似值」。如果需精确整数结果(如数学竞赛或编程题),建议用支持大整数的工具或语言(Python 的 math.factorial 或 BigInt)。

我输入 0.1 + 0.2 结果怎么是 0.30000000000000004?计算器坏了吗?

没坏,这是所有用 IEEE 754 浮点数的计算器(包括手机自带、Excel)都会遇到的问题。0.1 和 0.2 在二进制里是无限循环小数,存储时只能近似,累加后产生微小误差。本工具结果区默认显示 15 位小数,所以暴露了这个精度问题。如果做财务或物理计算,可以点击「修约」按钮手动保留 2-4 位小数;或者用分数模式(如有)得到精确的 3/10。

我想把 255 转成二进制,但出来的结果怎么是 11111111?

255 的二进制确实是 11111111(8 位全 1),结果正确。本工具的进制转换支持十进制、二进制、八进制、十六进制互转。输入十进制数后,点击「进制」选项卡选择二进制即可。注意:如果输入带小数,二进制会显示无限循环(如 0.1 转二进制是 0.0001100110011...),此时结果区会截断到 20 位并加「...」提示。纯整数转换无精度损失。

在手机上用,按钮太小点不准怎么办?

本工具自适应手机屏幕,按钮大小随屏幕宽度调整。如果还是觉得小,可以尝试横屏模式——大多数手机横屏后按钮会更大。另外,常用操作(如 sin、log、平方)支持键盘快捷键:电脑端按 s 键切换 sin,按 l 键输入 log;手机端连接外接键盘同样有效。如果经常误触,建议使用触控笔或放大浏览器页面(双指缩放)。

这个计算器能算复数吗?比如根号下 -1?

不能。本工具是实数科学计算器,输入 √(-1) 会返回错误提示「无效输入」。复数运算需要专门的复数模式(如 Casio fx-991 的复数模式或 Python 的 cmath 库)。如果你只是偶尔需要算虚数,可以手动记 i² = -1,然后用实数运算处理实部和虚部分别计算。未来版本可能加入复数支持,但目前请使用其他专业工具。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭