51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

calc-extension

ID: manfffpjhdpdkeinlfcanehifhakepcj

提供方: mvath.develop

版本: 5.5

大小: 49.74KB

更新时间: 2023-03-06 22:38:44

支持语言: 德语、英语

简介:

计算数学表达式的值

计算扩展

(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(默认语言)
    -德

插件下载:

赞(13)
未经允许不得转载:工具盒子 » calc-extension