如何访问浮点常量?

时间:2014-12-11 14:49:05

标签: floating-point constants rust

如何访问Rust标准库中定义的浮点常量?

例如,我想将静态定义的1 / sqrt(2)用于64位浮点数:

use std::f64;
//Float::frac_1_sqrt2(); // use of undeclared module Float
//Float.frac_1_sqrt2(); // unresolved name Float
//f64::frac_1_sqrt2(); // unresolved name f64::frac...
//f64.frac_1_sqrt2(); // unresolved name f64
//1.0f64.frac_1_sqrt2(); // f64 doesn't implement frac_1_sqrt2
//frac_1_sqrt2::<f64>(1.0) // frac_1_sqrt2 unresolved
//frac_1_sqrt2::(1.0f64) // frac_1_sqrt2 unresolved
//f64::frac_1_sqrt2(1.0f64) // frac_1_sqrt2 unresolved

2 个答案:

答案 0 :(得分:4)

//Float::frac_1_sqrt2(); // use of undeclared module Float

这是正确的,但你必须将Float带入范围或用绝对路径解决它。接下来,你需要给它一个推理提示,以便它知道你想要的浮点类型Float。以下作品:

use std::num::Float;
let x: f64 = Float::frac_1_sqrt2();
println!("{}", x);

答案 1 :(得分:4)

您可以简单地使用f64::consts中定义的静态常量(和f32::consts中的等价物):

use std::f64;

fn main() {
    let a = f64::consts::FRAC_1_SQRT2;
}