#rpn #calculator #command-line #unit #now #precision #multiple

app foocalc

一个具有多精度和单位支持的命令行RPN计算器

1个不稳定发布

0.1.0 2024年6月13日

#558 in 数学

Apache-2.0LGPL-3.0+

88KB
2K SLoC

Rustcalc 3

一个命令行RPN计算器

用法

这个计算器是RPN,这意味着操作符放在操作数之后,而不是之间。例如,2*3将被写作 2 3*,而 (1+2)/(3*4) 将是 1 2+ 3 4*/
可以使用Ctrl+d退出

语法

语法 行为 示例
<数字> 推入堆栈 1 -> 1 在堆栈上
+ 添加堆栈上的最后两个元素 1 2+ -> 3
- 从堆栈上的最后两个元素减去 1 2- -> -1
* 将堆栈上的最后两个元素相乘 1 2* -> 2
/ 将堆栈上的最后两个元素相除 1 2/ -> 0.5
^ 对堆栈上的最后两个元素进行指数运算 1 2^ -> 1
'<中缀>' 中缀表示法 '(1+2)/(3*4)' -> 0.25
<小数>e<整数> 小数部分乘以10的整数次幂 123.456e3 -> 123456
(<number>, <number>)(<number> + <number>i)<number> + <number>i<number>i 复数 (2, 5) -> 2 + 5i
<数字>`<单元>` 单元 5`m/s` -> 5 米/秒
<单元>` 转换单位 5`m/s` to`in/hour` -> 708661.(...) 英寸/小时
`<单元>` 设置单位 5`m/s` `in/hour` -> 5 英寸/小时
"注释" 注释 "这是一个注释"
=<变量名> 设置变量 5 =aaa -> 'aaa' 现在等于 5
<变量名> 获取变量 aaa -> 5
<函数名> 调用函数 pi cos -> -1
r 移除 1 2 3 4 5 clear -> 清空栈
d 复制 5 d -> 将 5 添加到栈中,然后再添加一次
s 交换 5 6 s -> 栈中的 6 5
美化 美化打印 123e54 pretty -> 123 十七亿
清除 清空栈 1 2 3 4 5 clear -> 栈为空
|<单元名>| 定义单元 |person| -> 你现在可以这样做 ```1`person````
|<单元名> <单元值>| 定义单元 |城镇100`people`* 10|
[<骰子>] 掷骰子 [1d8+2d10]
[P(<骰子>)] 计算骰子概率分布 [P(1d8)] 显示 d8 的直方图和期望值
上下文 显示一个数量在上下文中的含义 5`m` context 将 5 米与已知最高人类的高度、公共汽车的长度和蓝鲸的长度进行比较

支持的功能

sin, cos, tan, cot, asin, acos, atan, atan2 (即将推出), acot (即将推出), sqrt, ln, log10, log2, logb

构建

货物构建 --发布

运行

构建完成后,可执行文件将在 target/release/rustcalc-4
注意,它将在当前目录中查找 units.txt 文件

依赖项

~11–24MB
~316K SLoC