
calc-extension5.5
计算数学表达式的值# 计算扩展(C) 马丁·瓦斯
更新日期:2021年 8月 29日分类标签:工具语言:中文平台:
49.74KB 0 人已下载 手机查看
简介:
计算数学表达式的值# 计算扩展(C) 马丁·瓦斯 <martin@mvath.de>这个项目在 GNU 公共许可证 2.0 下。 WebExtension:计算数学表达式的值该扩展力求对每个快速需要的人都有用短期或中长期计算:在日常“浏览器”生活中,作为数学家,或作为程序员 - 所有需求都有支持。公式可以输入典型的数学家或程序员的语法 - 两者都被理解。还支持长时间的会话(保存/恢复、导出到剪贴板等)。最初的动机是尝试使用 Pratt 解析器。已经有比大多数语言更丰富的表达式语法(隐式乘号,函数调用不需要大括号),将语法扩展为更成熟的“语言”会很简单。 (事实上,早期版本的 __calc-extension__ 有更简单的语法。对解析器实现感兴趣的读者可以查看`data/js/parser.js`)。安装__calc-extension__后,可以如下使用。单击 __calc-extension__ 符号“1+2”或选项页面上的链接。然后会打开一个页面,您可以在其中输入公式(见下文)当您按下求解器按钮 (`~>`) 时计算。 (如果您愿意,可以选择使用回车键。)然后显示结果,您可以输入下一个公式。您还可以返回到先前输入的公式并“重新计算”它(例如,在您修改了一些变量之后)。要从列表中删除公式,只需删除主要公式文本并按下解算器按钮。一个简单的公式是一个通常的数学表达式,它由数字组成,通常的运算符 `+` `-` `*` `/` 和大括号 `(` `)`。和数学一样(虽然不是大多数计算机语言),可以省略乘号“*”。然而: __注意 `x` 表示变量 x 而不是乘号 __!对于乘法,请使用符号之一 `*` `·` `×` 或简单地省略它(一个空格可以用来分隔相邻的标记)。除法符号是`/` 或`:`。数字具有通常的浮点格式,例如 `17` `0.1` `1.2e-3`,或者它们可以是八进制或十六进制:对于以“0”开头的八进制数,对于以“0x”开头的十六进制数。还有一些运算符可以用在表达式中: - `%` 余数(“取模”) - `**` 或 `↑` 求幂(从右到左绑定) - `&` 按位与- `|` 按位或- `^` 按位异或还有一些可用的数学函数。请注意,函数绑定比所有二元运算符都强,即`sin PI/2` 与 `sin(PI)/2` 相同,但不同于 `sin(PI/2)`。 - `sin` 正弦,参数以弧度为单位- `cos` 余弦,参数以弧度为单位- `tan` 切线,参数以弧度为单位- `asin` 反正弦,以弧度为单位- `acos` 反余弦,以弧度为单位- `atan` 反正切,以弧度为单位- `sinh` 双曲正弦- `cosh` 双曲余弦- `tanh` 双曲正切- `asinh` 双曲区域- `acosh` 双曲面积余弦- `atanh` 双曲正切- `log10` 以 10 为底的对数- `log2` 以 2 为底的对数- `log` 自然对数(以 E 为底) - `log1p` `log(1+x)` 其中 `x` 是参数- `exp` 指数函数(基数 E) - `expm1` `exp x - 1` 其中 `x` 是参数- `sqrt` 平方根,即 `sqrt x = x ** (1/2)` - `cbrt` 立方根,即 `cbrt x = x ** (1/3)` - `abs` 绝对值- `sign` 符号(1、0 或 -1) - `floor` 向下舍入为整数的值- `ceil` 值四舍五入为整数- `trunc` 舍入为绝对值较小的整数的值- `round` 值四舍五入到最接近的整数- `fround` 值四舍五入到最接近的 32 位浮点数- `clz32` 32 位表示中前导零位数此外,还有可用的常量: - `E` 欧拉数 exp 1 - `PI` 或 `π` 圆圈数 acos -1 - `SQRT2` 平方 2 - `SQRT1_2` 平方 1/2 - `LN2` 日志 2 - `LN10` 日志 10 - `LOG2E` log2 E - `LOG10E` log10 E - `EPSILON` 或 `ε` 1 到最小的较大浮点数的距离最后,可以使用例如 `a=...` 定义变量并使用它们。变量名只能由英文字符、数字或“_”组成。函数和常量的名称以及运算符顺序类似于那个javascript。但是,javascript 中的函数需要大括号,并且乘号不能省略。以下是进一步的扩展:有一个特殊的变量名“#”,它总是指代的结果最后一次(成功的)计算。还有一些特殊的序列可以出现在表达式中的任何地方并导致选项切换(您也可以通过鼠标切换它们)。更永久地修改选项(也适用于未来的会话,甚至跨越浏览器重新启动),您必须存储它们或使用首选项窗口。 - `'width:height'` 文本区域大小- `"base"` 将输出切换到 base (2-36) - `!` 新的输入字段是文本区域(多行) - `?` 新的输入字段用于单行函数和数字转换的实际计算发生通过 javascript 调用。因此,可用的数学属性精度、错误消息、数量限制和可能的不准确之处(甚至可能是错误)是从 javascript interpter 继承的。 ## 示例会话- `1 + 2(1+1) + (2-1)(3-2)` - ~> 6 - `1·1 + 1×1 + 1 1 + 1*1` - ~> 4 - `2↑2↑3 - 2**8 + 4/3 - 1:3` - -> 1 - `1 - cos π/2 + cos(PI/2)` - ~> 1.5 - `a = 3(# + 1)` - ~> 7.5 - `# + 4a` - ~> 37.5 -`0xF | 0100“16”` - ~> 4f(以 16 为基数) ## 权限该扩展程序需要存储权限才能存储选项/手风琴状态,可能还有本地存储上的会话。 ## 语言目前,支持以下语言: - en(默认语言) -德