2014-12-11 5 views
2

녹 표준 라이브러리에 정의 된 부동 소수점 상수에 어떻게 접근합니까?부동 소수점 상수에 액세스하는 방법은 무엇입니까?

예를 들어, 내가 사용하려는 정적으로 정의 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 

답변

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

이 잘 대해이지만이 범위 또는 주소로 Float을 가지고 돼 그것의 절대 경로. 다음으로 추론 힌트를 줄 필요가 있으므로 어떤 부동 소수점 유형의 Float impl을 원하는지 알 수 있습니다. 다음 작품 :

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

완전 명시 적 문법은'같은 거 모습이다 <표준 : NUM : : f64> :: frac_1_sqrt2()'에 대해 플로트하지만 누가 구현 될지 알고 있습니다 : P – ben

4

당신은 단순히 (균등과 f32::consts) f64::consts에 정의 된 정적 상수 사용할 수 있습니다

use std::f64; 

fn main() { 
    let a = f64::consts::FRAC_1_SQRT2; 
} 
관련 문제