Floating point 如何访问浮点常量?

Floating point 如何访问浮点常量?,floating-point,constants,rust,Floating Point,Constants,Rust,如何访问Rust标准库中定义的浮点常量 例如,我想对64位浮点使用静态定义的1/sqrt(2): 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(); //

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

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

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
使用std::f64;
//Float::frac_1_sqrt2();//使用未声明的模块浮点
//Float.frac_1_sqrt2();//未解析名称浮动
//f64::frac_1_sqrt2();//未解析的名称f64::分形。。。
//f64.frac_1_sqrt2();//未解析名称f64
//1.0f64.frac_1_sqrt2();//f64不执行frac_1_sqrt2
//frac_1_sqrt2::(1.0)//frac_1_sqrt2未解决
//frac_1_sqrt2::(1.0f64)//frac_1_sqrt2未解决
//f64::frac_1_sqrt2(1.0f64)//frac_1_sqrt2未解决
这是正确的,但您必须将
Float
引入范围或使用其绝对路径来解决它。接下来,您需要给它一个推断提示,以便它知道您想要哪个浮点类型的
Float
impl。以下工作:

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

您只需使用在
f64::consts
中定义的静态常量(以及
f32::consts
中定义的等效常量):


完全显式语法看起来像
::frac_1_sqrt2()
,但谁知道什么时候会实现呢:P
use std::num::Float;
let x: f64 = Float::frac_1_sqrt2();
println!("{}", x);
use std::f64;

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