为什么 -2^2 等于 -4 而不是 4?
因为一元负号的优先级低于幂运算,这是数学与 Excel、Python 等工具共同遵循的惯例:-2^2 被理解为 -(2^2)。想要得到 4 请写成 (-2)^2。反之在指数位置出现的负号属于指数本身,因此 2^-1 = 0.5。
29 个函数与常量,幂 / 阶乘 / 三角函数,角度弧度可切换
输入表达式后实时显示结果,按 Enter 可记录到历史记录。
写代码时经常要临时算一个式子:等比数列的项、带宽换算出的毫秒数、某个角度对应的正弦值、两个大数的最大公约数。操作系统的计算器要么没有函数,要么需要一层层点按钮,而表达式直接写出来最快也最不容易错。本工具支持四则运算与括号、^ 与 ** 两种幂写法、! 阶乘、29 个常用函数(sin / cos / tan / asin / log / ln / sqrt / cbrt / gcd / lcm / hypot / round 等)以及 pi、e、tau 三个常量,还允许省略乘号写成 2pi 或 2(3+4)。
求值过程是自己实现的调度场算法(中缀转逆波兰再栈式求值),完全不使用 eval 与 new Function,因此粘贴任何内容都只可能得到一个数字或一条错误提示,不存在执行任意代码的风险。三角函数默认按弧度计算,切到「角度制」后 sin(30) 就是 0.5;反三角函数也会相应地按角度返回。优先级遵循数学惯例:幂右结合(2^3^2 = 512)、一元负号低于幂(-2^2 = -4)而高于乘除。
因为一元负号的优先级低于幂运算,这是数学与 Excel、Python 等工具共同遵循的惯例:-2^2 被理解为 -(2^2)。想要得到 4 请写成 (-2)^2。反之在指数位置出现的负号属于指数本身,因此 2^-1 = 0.5。
安全。本工具没有使用 eval,而是自己解析表达式并转成逆波兰式求值,因此输入里即使包含花括号、分号或函数名也无法执行任何代码。所有计算都在你的浏览器里完成,表达式不会离开本机。
因为默认是弧度制,sin(30) 指的是 30 弧度(约 1718.9°),结果约 -0.988。把上方的角度制切换到「角度制(deg)」后,sin(30) 才会等于 0.5。编程语言里的三角函数几乎都是弧度制,本工具默认与之一致,避免复制表达式时产生偏差。