数学计算

数学常量

Rust中的常数定义在std::f32::consts与std::f64::consts模块中。

常数变量 含义
E 自然对数的底 (e)
FRAC_1_PI 1/π
FRAC_1_SQRT_2 1/sqrt(2)
FRAC_2_PI 2/π
FRAC_2_SQRT_PI 2/sqrt(π)
FRAC_PI_2 π/2
FRAC_PI_3 π/3
FRAC_PI_4 π/4
FRAC_PI_6 π/6
FRAC_PI_8 π/8
LN_2 ln(2)
LN_10 ln(10)
LOG10_E log10(e)
LOG2_E log2(e)
PI 圆周率 (π)
SQRT_2 sqrt(2)

例:使用数学常数。

let e_f32 = std::f32::consts::E;
let pi_f64 = std::f64::consts::PI;

println!("e = {}; pi = {}", e_f32,pi_f64);

数学函数

Rust不像其他语言为计算专门提供了Math相关库。Rust的数学函数只提供给了f32与f64类型,其他来下数字需要进行Math计算,需要先转换成相应数值类型。

let x = 3.14159f32;
let sin_x = x.sin();
println!("sin({}) = {}",x,sin_x );

let y:i32 = 2;
let pow_y = y.pow(3);
println!("pow({},3) = {}", y,pow_y);

浮点数的数学计算

对于浮点数,Rust提供了比较充足的计算函数,但是需要注意Rust只针对i32与i64提供了较多的计算函数。

辨析:

let x = 3.14159;
let sin_x = x.sin(); // 编译出错。

这样写编译会出错。原因是这种方式赋值的x,其类型为float。float类型没有sin方法,所以必须明确声明x的类型为f32或f64。

整数的数学计算

对于整数,Rust只提供了一些基础的计算函数,如pow(),abs(),signum()等,不提供如三角函数一类的常见数学函数。

results matching ""

    No results matching ""