科学计算器

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

413 次访问

科学计算器

括号 ( 0 / ) 0 精度
0
0

表达式求值

粘贴或输入完整数学表达式 · 支持 sin(30) + cos(60) × √2 / 2^10 - 5! / log(100) / log(2)
支持常量 π e φ c h G N_A;函数 sin cos tan asin... ln log log2 sqrt cbrt abs exp floor ceil round sign

就绪
表达式结果
0

进制转换 · DEC / HEX / OCT / BIN

任一行输入即实时同步其他三行 · 最大支持 Number.MAX_SAFE_INTEGER (2⁵³-1) · 位宽显示供位运算参考

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

统计分析 · 均值 / 中位数 / 标准差

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

样本数 n
0
总和 Σx
0
平均值 μ
0
中位数 M
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 → 卡尔丹诺公式(含复根)
请输入系数

单位换算

选择单位后显示换算公式

常量库 · 点击载入到计算器

历史记录

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

键盘 / 使用提示

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

角度:DEG 输入 sin(30) = 0.5, RAD 输入 sin(π/6) = 0.5, GRAD 输入 sin(33.33) ≈ 0.5。 切换模式立即重算当前表达式

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

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

常量:常量库面板内点击即载入;表达式面板支持 π e φ c h G N_A 等命名常量直接参与运算

进制:四进制实时互转;任一输入框输入即同步其他三个。 最大支持 2⁵³ - 1(JS 安全整数),超出会高亮提示

统计:粘贴任意分隔的数字串均可(空格/逗号/分号/换行/中文逗号), 自动跳过非数字字符。同时计算样本与总体两套方差/标准差

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

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

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

关于本工具

了解工具定位 · 使用场景 · 对比优势

使用场景

📐

工程三角验算

现场施工员在放线时需要快速计算斜边长度、坡度角或三角函数值,手算容易出错且耗时。本工具直接输入角度或边长,秒出 sin/cos/tan 及反函数结果,支持度分秒格式,省去翻表查手册的麻烦,提高放线效率。

🔢

进制转换与位运算

嵌入式开发者在调试寄存器或配置位掩码时,频繁在二进制、十六进制和十进制之间切换。本工具一键转换进制并同步显示各进制结果,配合位与、位或、移位运算,让协议解析和寄存器配置不再反复心算。

🧮

组合数阶乘计算

概率统计课的学生在计算排列组合时,阶乘值动辄上万,手算极易越界或遗漏。本工具直接输入 n 和 r 输出组合数 C(n,r) 和排列数 P(n,r),阶乘结果精确到超大整数,避免中间计算溢出,让作业检查更放心。

📈

对数回归拟合

数据分析师在处理指数增长型数据(如用户增长曲线)时,需要将原始数据取对数后做线性拟合。本工具提供常用对数 log₁₀ 和自然对数 ln,配合内存键保存中间结果,省去逐条复制到 Excel 的步骤,加速建模流程。

复利终值速算

个人投资者在比较不同理财产品的年化收益率时,需要计算本金在 N 年后的终值。本工具利用指数和对数功能,输入本金、年化利率和年限,直接输出复利终值,并可保存多组参数对比,辅助投资决策。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具 (jisuanqi.tl654.com)Desmos (desmos.com)系统自带计算器 (Windows/macOS)
数据隐私纯浏览器计算,无网络请求,数据不离开设备需加载在线脚本,部分操作可能触发云绘图请求纯本地计算,无网络请求
离线可用页面加载后完全离线可用需联网加载核心库,离线功能受限完全离线可用
进制转换支持二进制/八进制/十进制/十六进制互转,带内存键不支持进制转换程序员模式支持进制转换,但无内存键
内存键功能支持 M+/M-/MR/MC 内存键,可存储中间结果支持变量赋值 (x=5),但无传统内存键标准模式无内存键;程序员模式无内存键
三角函数单位支持度/弧度切换,结果即时刷新默认为弧度,需手动输入 deg() 转换度/弧度可切换,但操作路径较深
输入方式键盘直接输入,支持括号嵌套虚拟键盘 + 物理键盘,支持 LaTeX 输入鼠标点击按钮为主,效率较低
平台覆盖任何现代浏览器 (桌面/移动端)桌面浏览器为主,移动端适配一般仅限 Windows/macOS 桌面系统
功能复杂度聚焦科学计算核心功能,无冗余功能强项在图形绘制,科学计算需配合函数输入标准/科学/程序员模式分离,切换繁琐

使用指南

上手步骤 · 输入输出 · 避坑提示

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
sin(30)0.5典型场景:30° 正弦值,结果应为精确 0.5
log(100)2典型场景:常用对数,10²=100 的逆运算
10!3628800典型场景:10 的阶乘,常见组合数计算
0xFF255边界 case:十六进制最大值 FF 转十进制
tan(90)Error: 无穷大边界 case:90° 正切无定义,应返回错误
0!1易错 case:0 的阶乘定义为 1,非 0
log(0)Error: 无定义易错 case:对数真数必须 > 0,0 无意义

常见错误对照8 个常踩的坑 · 错误 → 修复

1. 三角函数参数单位混淆

错误
sin(90) 期望得到 1
修复
sin(90°) 或 sin(π/2) 得到 1

该工具默认使用弧度制(radian),90 弧度 ≠ 90 度。输入角度需显式转换或使用角度模式(若支持)。

2. 对数底数省略导致歧义

错误
log(100) 期望得到 2(常用对数)
修复
log10(100) 或 log(100, 10) 得到 2

数学中 log 默认底数有歧义:工程常用 10,数学常用 e。该工具需显式指定底数,否则可能为自然对数。

3. 阶乘运算符优先级误解

错误
2+3! 期望得到 (2+3)! = 120
修复
2+3! = 2+6 = 8

阶乘是单目运算符,优先级高于加减。正确计算为 3! = 6,再加 2。需加括号改变顺序:(2+3)!。

4. 进制转换时前缀缺失

错误
将 0x1A 转十进制时输入 1A
修复
输入 0x1A 或选择十六进制模式后输入 1A

无前缀的 1A 会被解析为变量名或非法表达式。十六进制数必须带 0x 前缀,或在进制模式下输入。

5. 内存键(M+)覆盖未清空

错误
连续计算:10+5 M+ → 20+5 M+ 后按 MR 得到 25
修复
每次新计算前按 MC 清空内存,或确认前一次结果已使用

M+ 是累加模式,第二次 M+ 会把 25 加到第一次的 15 上,得到 40 而非 25。

6. 科学计数法指数符号错误

错误
输入 1e-3 时写成 1e-3(用全角减号)
修复
使用半角连字符:1e-3

全角减号(U+2212)或全角连字符(U+FF0D)不被解析为负号,导致语法错误。

7. 大数阶乘溢出误解

错误
计算 100! 后直接复制结果使用
修复
确认工具返回的是近似科学记数法(如 9.3326e157)而非精确整数

100! 有 158 位十进制数,超出 JS Number 安全整数范围(2^53),工具可能返回浮点近似值。

8. 括号不匹配导致解析失败

错误
输入 (3+4*(2-1) 缺少右括号
修复
输入 (3+4*(2-1)) 或使用自动补全功能(若支持)

括号不匹配时解析器无法确定运算顺序,返回语法错误。建议输入时逐层检查括号成对。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

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

变量说明

  • n — 非负整数,阶乘的底数
  • n! — n 的阶乘,即 1 到 n 的连乘积

示例

计算 5!:5 × 4 × 3 × 2 × 1 = 120。输入 5 后点击阶乘按钮,结果输出 120。

适用范围

适用于非负整数 n(0 ≤ n ≤ 170),n=0 时 0!=1。n>170 时结果超出双精度浮点数范围(约 1e308),工具返回 Infinity。

原理图

科学计算器 · 纯浏览器端计算流程输入表达式数字 / 运算符 / 函数词法 / 语法解析构建 AST 语法树数值计算引擎三角 / 对数 / 阶乘 / 进制结果渲染数字 / 进制 / 错误提示内存键存储M+ / M- / MR / MC历史记录管理表达式 ↔ 结果 双向绑定
用户输入 解析阶段 计算引擎 输出结果

开发者集成

3 种主流语言 · 复制即用

import math

# 三角函数(弧度制)
angle_deg = 45
angle_rad = math.radians(angle_deg)
sin_val = math.sin(angle_rad)
cos_val = math.cos(angle_rad)
tan_val = math.tan(angle_rad)
print(f"sin({angle_deg}°) = {sin_val:.4f}")  # 0.7071
print(f"cos({angle_deg}°) = {cos_val:.4f}")  # 0.7071
print(f"tan({angle_deg}°) = {tan_val:.4f}")  # 1.0000

# 对数
print(f"ln(100) = {math.log(100):.4f}")       # 4.6052
print(f"log10(100) = {math.log10(100):.4f}")  # 2.0000
print(f"log2(8) = {math.log2(8):.4f}")        # 3.0000

# 阶乘
n = 5
print(f"{n}! = {math.factorial(n)}")  # 120

# 进制转换
num = 42
print(f"十进制 {num} → 二进制 {bin(num)}")    # 0b101010
print(f"十进制 {num} → 八进制 {oct(num)}")    # 0o52
print(f"十进制 {num} → 十六进制 {hex(num)}")  # 0x2a

# 内存键(取整、绝对值)
print(f"floor(3.7) = {math.floor(3.7)}")  # 3
print(f"ceil(3.2) = {math.ceil(3.2)}")    # 4
print(f"abs(-5) = {abs(-5)}")             # 5
package main

import (
	"fmt"
	"math"
	"strconv"
)

func main() {
	// 三角函数(弧度制)
	angleDeg := 45.0
	angleRad := angleDeg * math.Pi / 180
	fmt.Printf("sin(%.0f°) = %.4f\n", angleDeg, math.Sin(angleRad)) // 0.7071
	fmt.Printf("cos(%.0f°) = %.4f\n", angleDeg, math.Cos(angleRad)) // 0.7071
	fmt.Printf("tan(%.0f°) = %.4f\n", angleDeg, math.Tan(angleRad)) // 1.0000

	// 对数
	fmt.Printf("ln(100) = %.4f\n", math.Log(100))    // 4.6052
	fmt.Printf("log10(100) = %.4f\n", math.Log10(100)) // 2.0000

	// 阶乘(Go 无内置阶乘,手动实现)
	n := 5
	fact := 1
	for i := 2; i <= n; i++ {
		fact *= i
	}
	fmt.Printf("%d! = %d\n", n, fact) // 120

	// 进制转换
	num := 42
	fmt.Printf("十进制 %d → 二进制 %s\n", num, strconv.FormatInt(int64(num), 2))  // 101010
	fmt.Printf("十进制 %d → 八进制 %s\n", num, strconv.FormatInt(int64(num), 8))  // 52
	fmt.Printf("十进制 %d → 十六进制 %s\n", num, strconv.FormatInt(int64(num), 16)) // 2a

	// 内存键(取整、绝对值)
	fmt.Printf("floor(3.7) = %.0f\n", math.Floor(3.7)) // 3
	fmt.Printf("ceil(3.2) = %.0f\n", math.Ceil(3.2))   // 4
	fmt.Printf("abs(-5) = %d\n", int(math.Abs(-5)))    // 5
}
// 三角函数(弧度制)
const angleDeg = 45;
const angleRad = angleDeg * Math.PI / 180;
console.log(`sin(${angleDeg}°) = ${Math.sin(angleRad).toFixed(4)}`); // 0.7071
console.log(`cos(${angleDeg}°) = ${Math.cos(angleRad).toFixed(4)}`); // 0.7071
console.log(`tan(${angleDeg}°) = ${Math.tan(angleRad).toFixed(4)}`); // 1.0000

// 对数
console.log(`ln(100) = ${Math.log(100).toFixed(4)}`);       // 4.6052
console.log(`log10(100) = ${Math.log10(100).toFixed(4)}`);  // 2.0000
console.log(`log2(8) = ${Math.log2(8).toFixed(4)}`);        // 3.0000

// 阶乘
function factorial(n) {
  if (n < 0) return NaN;
  if (n <= 1) return 1;
  return n * factorial(n - 1);
}
console.log(`5! = ${factorial(5)}`); // 120

// 进制转换
const num = 42;
console.log(`十进制 ${num} → 二进制 ${num.toString(2)}`);  // 101010
console.log(`十进制 ${num} → 八进制 ${num.toString(8)}`);  // 52
console.log(`十进制 ${num} → 十六进制 ${num.toString(16)}`); // 2a

// 内存键(取整、绝对值)
console.log(`floor(3.7) = ${Math.floor(3.7)}`); // 3
console.log(`ceil(3.2) = ${Math.ceil(3.2)}`);   // 4
console.log(`abs(-5) = ${Math.abs(-5)}`);       // 5

常见问题

8 个高频疑问

这个科学计算器能算三角函数,角度单位是用度还是弧度?
默认使用弧度(rad)作为角度单位。如果需要以度(°)为单位计算,例如 sin(30°),请先将角度乘以 π/180 换算为弧度,即输入 sin(30 * π / 180)。部分常用角度如 30°、45°、60° 的弧度值可手动换算后输入。工具不提供单位切换按钮,因此输入前需确认自己的数值单位。
计算阶乘时,输入 0 会输出什么?负数或小数能算阶乘吗?
0 的阶乘定义为 1,工具会正确返回 1。负数和小数不适用标准阶乘(n! 仅对非负整数定义),输入负数或小数后工具不会输出结果或显示错误。如果需要计算伽马函数(即实数域的阶乘推广),本工具暂不支持,请使用专用数学软件。
为什么我算 log(100) 得到的结果不是 2?
本工具的 log 函数默认以 e 为底(自然对数),因此 log(100) 约等于 4.6052。要计算以 10 为底的常用对数,请使用 log10(100) 函数。如果工具不支持 log10 写法,可换用 log(100) / log(10) 的方式得到 2。输入前可先测试 log(e) 是否返回 1,以确认底数设置。
在线科学计算器和手机自带的计算器比,哪个更准?
对于基本的四则运算和三角函数,两者精度相当(均基于 IEEE 754 双精度浮点数)。区别在于:本工具支持进制转换、阶乘、对数等扩展功能,而手机自带计算器通常只提供基础运算。如果遇到精度差异(例如 0.1 + 0.2 显示 0.30000000000000004),这是浮点运算的通用特性,不是工具特有的问题。
工具能在离线状态下使用吗?
可以。本工具完全在浏览器端运行,所有计算由 JavaScript 执行,不依赖后端服务器。首次加载后,即使断开网络,刷新页面仍可使用全部功能(三角函数、对数、阶乘、进制转换等)。如果清除浏览器缓存或首次访问时需要联网加载页面资源,之后即可离线运行。
输入很长的数字(比如 30 位)会丢失精度吗?
会的。JavaScript 数字类型遵循 IEEE 754 双精度标准,只能精确表示约 15-17 位有效数字。超过该范围的整数末尾会被截断或四舍五入,例如输入 12345678901234567890,实际参与计算的值可能是 12345678901234567000。如果需要高精度计算(如大数阶乘),本工具不适用,建议使用支持任意精度计算的专用软件。
进制转换支持哪些进制?负数和小数能转吗?
通常支持二进制、八进制、十进制、十六进制之间的相互转换。负数转换时,工具可能不显示符号位或补码表示,而是直接取绝对值转换。小数转换可能因浮点精度导致末尾几位偏差(例如十进制 0.1 转二进制是无限循环小数,工具会截断显示)。建议只对整数进行进制转换,小数部分以近似结果参考。
为什么按了等号没反应,或者结果显示为 NaN?
NaN 表示输入了非法数学运算,常见原因包括:对负数开平方(如 sqrt(-1))、0 除以 0、对负数取对数(如 log(-5))、三角函数输入超出定义域(如 arcsin(2))。请检查表达式是否符合数学规则。如果按等号完全无响应,可能是表达式格式错误(如括号不匹配、缺少运算符),可尝试清除输入后重新键入。
选择 打开 +新窗口 esc关闭