#计算器 #算术

应用 calculatrs

一个简单的命令行计算器,具有类似 Python 的语法,用于简单的即时计算

5 个版本

0.2.3 2020 年 8 月 10 日
0.2.2 2020 年 7 月 24 日
0.2.1 2020 年 5 月 2 日
0.2.0 2020 年 5 月 2 日
0.1.0 2020 年 5 月 1 日

#73 in #算术

MIT/Apache

14KB
254

calculatrs

终端上的 Python 风格计算器,用于简单的数学运算。它仅支持少数基本运算符;如果需要更多,请使用实际的 Python。如果您只需要进行简单的算术运算,则这应该没问题。

目前

  • 所有整数都是 128 位有符号整数

  • 所有浮点值都是 64 位 IEEE754。

  • 混合表达式中整数会被强制转换为浮点数。

  • 可以显式地将值转换为类型: int(2.0)float(2)。对于整数,这将截断值。

  • 整数支持以下基本操作

    • +-*/:基本算术。注意,对于整型操作数,我们使用整数除法。
    • <<>>:左移和右移
    • b ** e:将 b 乘方 e。如果 e 是浮点数,则 b 也会被转换为浮点数。如果 e 是整数,则 e 会被转换为 32 位无符号整数。
  • 浮点数支持以下基本操作

    • +-*/:基本算术。注意,对于浮点型操作数,我们使用浮点除法。
    • b ** e:将 b 乘方 ee 可以是浮点数或整数,但如果它是整数,则会被截断为 32 位。
  • 优先级旨在合理,尽管我没有彻底测试

    +, - 较低优先级
    所有其他 较高优先级
  • 所有运算符都是右结合的。

  • 可以使用 ( <expr> ) 对表达式进行分组,正如预期的那样。

  • 特殊值 _ 表示上一个(输入)的结果,该结果存储在 /tmp/calculatrs 中。它可以在期望值的地方使用。如果发生错误,则不会更改保存的值。

  • 为了便于在终端直接使用,存在以下替代语法

    • * == x
    • ** == ^^

构建

您需要 稳定版本的 Rust

cargo build

安装

您可以从 cargo 安装

cargo install calculatrs

安装的二进制文件名为 c

使用

假设您将二进制文件安装到您的路径中

> c 10 / 5
2
> c '10 / 5'
2

请注意,您的 shell 可能会将 * 扩展为 "列出所有文件"。

依赖项

~2.1–4MB
~69K SLoC