# 表达式计算器

在受限的 mathjs 沙箱中计算包含单位、函数、常量和小型矩阵的数学表达式。输入 5 cm + 2 inch to mm、60 km/h to m/s 或 det([[1, 2], [3, 4]]) 这样的表达式，即可获得按你选择的精度四舍五入的结果。表达式无法定义变量或函数，也无法访问数学库以外的内容，因此可以安全地处理任何输入。适用于单位换算、工程检查和快速计算。

## 常见问题

### 可以输入什么？

数字、运算符 + - * / ^ 和 %、mod、factorial(n)、括号、cm、kg、km/h 或 degC 等单位、pi、e、tau、phi 和 i 等常量，以及 sqrt、sin、log、round、mean 或 det 等函数。支持隐式乘法，因此 2 pi 和 3 kg 都能正确识别。输入最多可包含 2000 个字符。

### 单位换算如何进行？

在数字后附上单位，并使用 to 或 in 进行换算，例如 3 ft to m 或 100 degF to degC。单位可以通过算术运算组合，因此 1 kg * 9.81 m/s^2 得到 9.81 N，2 cm * 3 cm 得到 6 cm^2。若相加的单位不兼容（例如 kg 和 m），则会返回错误。

### 可以使用矩阵和向量吗？

可以，用方括号书写，例如 [1, 2, 3] 或 [[1, 2], [3, 4]]；每行最多可有 10 个元素，最多支持两层嵌套。可使用 det、inv、transpose、trace、dot、cross 和 norm 等函数，也支持 .* 等逐元素运算符。矩阵结果会以对齐的区块形式显示。

### 为了安全，哪些功能已禁用？

变量、赋值、函数定义、字符串、对象、范围、索引和属性访问会在计算前被拒绝。按照 mathjs 的安全指南，import、createUnit、evaluate、parse、simplify 和 derivative 均已禁用，并且只允许调用白名单中的数学函数。表达式中的任何内容都无法访问 JavaScript 或服务器。

### 三角函数使用角度还是弧度？

普通数字按弧度处理，因此 sin(pi / 2) 为 1。要使用角度，请添加 deg 单位，例如 sin(30 deg) 或 cos(45 deg)。Scientific Calculator 提供角度模式，可将普通数字按角度处理。

### 百分号有什么作用？

数字后面的百分号表示将该数字除以 100，因此 50% 等于 0.5，而 200 * 15% 等于 30。加号或减号后面的百分数以左侧数值为基准，因此 100 + 10% 等于 110。在两个数字之间使用时（例如 10 % 3），它表示取模运算，结果为余数 1。你也可以写作 10 mod 3。

### 结果如何舍入？

数值、带单位的值和复数部分会按你选择的小数位数进行舍入，默认 6 位，最多 15 位，并去掉末尾的零。小到无法按该精度显示的值会以科学记数法表示。除以零会返回 Infinity，0 / 0 则报告为未定义。

### 可以一次输入多个表达式吗？

不可以，每次计算只能求值一个表达式，分号或额外行都会被拒绝。请用算术运算组合各部分，或依次运行它们。这样可以清楚地将每个结果与对应表达式关联起来。

### 有时间限制吗？

每次求值都会在隔离的 worker 中运行，时间限制为 3 秒，同时还受长度、嵌套深度和矩阵大小限制。组合数和排列数的 n 最大为 10,000。表达式触及限制时会显示清晰的提示，不会拖慢页面。

### 支持复数吗？

支持。可以用 i 表示虚数单位，例如 (2 + 3i) * (1 - i)；sqrt(-4) 等函数也会返回 2i 这样的复数结果。re、im、arg 和 conj 可提取复数结果的各个部分。结果显示为 a + bi。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
