8 个版本 (1 个稳定版)
1.0.0 | 2021年7月14日 |
---|---|
0.9.7 | 2021年7月2日 |
0.9.4 | 2021年6月30日 |
0.9.3 | 2019年5月22日 |
0.9.0 | 2019年4月29日 |
#1053 in 算法
每月35次下载
用于 2 crate
135KB
3K SLoC
是什么
支持大整数、浮点数、普通分数和复数的数学表达式评估库。该库被项目 RionaCalc 使用
特性
- 自动选择更合适的函数参数类型:例如,
sqrt(-4)
将浮点数-4
转换为复数-4+0i
,然后计算结果0+2i
。同样适用于计算负浮点数的对数以及大于1.0
的参数的 acos 和 asin - 自动添加省略的乘法符号:例如,
(1+2)(2+9)
被计算为(1+2)*(2+9)
- 具有单一值参数的函数不需要将其参数括在括号中:例如,
sin cos 2
被计算为sin(cos(2))
- 可以省略最后的括号:例如,
(1+2)*(2+9
与(1+2)*(2+9)
相同。 - 三角函数使用弧度和度。纯数字被视为弧度,度需要有一个或三个后缀。两种度数格式:
20d30m50s
或20°30'50"
。分钟和秒可以省略,在这种情况下,度可以是浮点数,如30.25d
。因此,sin(pi/2)
==sin(90°)
- 每个数字都可以包含分组分隔符
_
以提高可读性——当使用大整数时非常有用。例如,3_000.90_23
==3000.9023
- 点和逗号都被视为小数分隔符。
- 函数参数分隔符是
;
。如果一个函数接收的参数多于它所需的,则丢弃多余的参数:例如,sqrt(11;12;13)
与sqrt(11)
相同。 - 常规分数使用
\
分隔其部分。它们可以写成分数部分,也可以只写分子和分母,例如1\1\10
==11\10
- 有两种复数格式:在末尾或中间标记。例如,
1+2i
==1+i2
。此外,可以使用j
代替i
- 但计算器输出始终使用i
- 十六进制(以
0x
开头)、八进制(以0o
开头)和二进制(以0b
开头)数字 - 字符
%
可以是模运算符或百分比运算符。这取决于字符的位置:如果%
在表达式末尾或括号之前或另一个运算符之前,并且前一个运算符是+
、-
、*
或/
之一,则该字符被视为百分比运算符
依赖项
~3.5MB
~76K SLoC