10个不稳定版本 (3个破坏性更新)
0.4.0 | 2024年7月22日 |
---|---|
0.3.3 | 2024年7月3日 |
0.2.2 | 2024年6月30日 |
0.1.1 | 2024年6月30日 |
在 数学 中排名第139
每月下载量211次
345KB
9K SLoC
字符串计算器
一个包含计算字符串内公式的eval方法的简单包。
如何使用
只需导入所需的eval并使用它。
use string_calculator::eval_f64;
fn main() {
println!("{}", eval_f64("(2+3) / 2".to_string(), 0.0)); // 2.5
}
特性
默认情况下,所有功能都启用。如果您只想使用特定的eval方法,请使用与其名称相关的列表中的功能
eval_complex
eval_decimal
eval_f64
eval_i64
eval_number
示例
[dependencies]
string_calculator = { version = "0.4", default-features = false, features = ["eval_decimal"] }
运算符
由于有很多东西可以通过视觉上简化,这里列出了实现的全部运算符列表。
- 加法 (x+y) 此运算符处理两个数字之间的加法。示例:
1 + 2
= 3
- 减法 (x-y) 此运算符处理两个数字之间的减法。示例:
2 - 1
= 1
- 乘法 (x*y) 此运算符处理两个数字之间的乘法。示例:
3 * 2
= 6
- 除法 (x/y) 此运算符处理两个数字之间的除法。示例:
4 / 2
= 2
- 模运算(x%y)(仅在
eval_decimal
,eval_number
,eval_f64
和eval_i64
中)此运算符处理两个数之间的余数。例如:4 % 2
= 0
- 左移位(x<
eval_i64 中)此运算符将 x
的位左移y
位(等同于乘以2^y
)。例如:1 << 2
= 4
- 右移位(x>>y)(仅在
eval_i64
中)此运算符将x
的位右移y
位(等同于除以2^y
)。例如:4 >> 2
= 1
- 幂运算(x^y)此运算符处理
x
的y
次幂,x
和y
均为数字。例如:3^3
= 27
- 下标支持(x²)此运算符处理整数
x
的幂次,使用上标表示法(如²
)。例如:5²
= 25
- 阶乘运算(x!)(仅在
eval_decimal
,eval_number
,eval_f64
和eval_i64
中)此运算符处理实数x
的阶乘。例如:5!
= 120
- 度转弧度(x°)(仅在
eval_complex
,eval_number
和eval_f64
中)此运算符处理从度到弧度的转换。请注意,它的优先级与乘法相同。例如:3°
= 0.05235987755982989
- 弧度转度(x rad)(仅在
eval_complex
,eval_number
和eval_f64
中)此运算符处理从弧度到度的转换。请注意,它的优先级与乘法相同。例如:3 rad
= 171.8873385393
常量
- π(π)(仅在
eval_complex
,eval_number
,eval_decimal
和eval_f64
中)π 可表示为pi
或π
。 - e(e)(仅在
eval_complex
,eval_number
,eval_decimal
和eval_f64
中)e 可表示为e
。
函数表示法
如果需要,某些函数可以完全使用它们的原始数学符号来表示。
- 地板(⌊x⌋)(仅在
eval_f64
,eval_number
和eval_decimal
中)此函数返回小于或等于x
的最大整数。例如:⌊2.4⌋
= 2
- 天花板(⌈x⌉)(仅在
eval_f64
,eval_number
和eval_decimal
中)此函数返回大于或等于x
的最小整数。例如:⌈2.4⌉
= 3
函数
- 绝对值(abs(x))
- 符号函数(sgn(x),sign(x),signum(x))(仅在
eval_decimal
,eval_f64
,eval_number
和eval_i64
中) - 幂(pow(x,y))
- 平方根(sqrt(x))
- 根(root(x, n))
- 取模(mod(x,y))(仅在
eval_decimal
,eval_number
,eval_f64
和eval_i64
中) - 指数(exp(x),exp2(x))
- 对数(ln(x),lb(x),log(x, b))
- 极值(min(...X),max(...X))(仅在
eval_decimal
,eval_number
,eval_f64
和eval_i64
中) - 平均值(avg(...X))(仅在
eval_decimal
,eval_number
,eval_f64
和eval_i64
中) - 中位数(median(...X),med(...X))(仅在
eval_decimal
,eval_number
,eval_f64
和eval_i64
中) - 截断(trunc(x),truncate(x))(仅在
eval_f64
,eval_number
和eval_decimal
中) - 地板(floor(x))(仅在
eval_f64
,eval_number
和eval_decimal
中) - 天花板(ceil(x))(仅在
eval_f64
,eval_number
和eval_decimal
中) - 四舍五入(round(x))(仅在
eval_f64
,eval_number
和eval_decimal
中) - Lambert W(lambert_w(x),w(x))(仅在
eval_f64
,eval_number
和eval_decimal
中) - 迭代对数(ilog(x, b))(仅在
eval_f64
,eval_number
和eval_decimal
中) - 正弦(sin(θ))(仅在
eval_complex
,eval_number
和eval_f64
中) - 反正弦(asin(x))(仅在
eval_complex
,eval_number
和eval_f64
中) - 余弦(cos(θ))(仅在
eval_complex
,eval_number
和eval_f64
中) - 反余弦(acos(x))(仅在
eval_complex
,eval_number
和eval_f64
中) - 正切(tan(θ))(仅在
eval_complex
,eval_number
和eval_f64
中) - 反正切(atan(x))(仅在
eval_complex
,eval_number
和eval_f64
中) - 双曲正弦(sinh(θ))(仅在
eval_complex
,eval_number
和eval_f64
中) - 双曲反正弦(asinh(x),arsinh(x))(仅在
eval_complex
,eval_number
和eval_f64
中) - 双曲余弦(cosh(θ))(仅在
eval_complex
,eval_number
和eval_f64
中) - 双曲反余弦(acosh(x),arcosh(x))(仅在
eval_complex
,eval_number
和eval_f64
中) - 双曲正切(tanh(θ))(仅在
eval_complex
,eval_number
和eval_f64
中) - 双曲反正切函数(atanh(x),artanh(x))(仅在
eval_complex
,eval_number
和eval_f64
中) - 反正切2(atan2(y, x))(仅在
eval_f64
和eval_number
中) - 最大公约数(gcd(...X))(仅在
eval_i64
中) - 最小公倍数(lcm(...X))(仅在
eval_i64
中)
占位符获取器
这里使用的 @
符号用作要放入 eval_XXXXX
的值的占位符。如果您正在编写计算器,例如使用您的上一个答案,这可能很有用。
依赖项
~160KB