한 이중 숫자를 다른 이중 숫자로 매핑하는 기능의 속도를 높이려고합니다. 그러나 기능은 동일하게 유지되어야합니다. 똑같은 입력이 이전과 똑같은 출력을 만들어 내야합니다. 그 이유는이 원래 함수가 의심스러운 행동을하더라도 시스템에 어떤 차이점을 넣고 싶지 않기 때문입니다.이 이중 함수를 수행하는 더 빠른 방법을 찾으십시오.
기능은 다음과 같습니다
double g(double d)
{
std::stringstream ss;
ss.precision(10);
ss<<std::fixed<<d;
std::string asString;
ss >> asString;
return atof(asString.c_str());
}
기능이 꽤 느린 보인다. 문자열을 통해 double을 다른 double로 변환하면 이상하게 보입니다.
_ "기능이 매우 느립니다." 모든 측정 및 구체적인 프로파일 링? –
글쎄요. 거의 같은 일을하는 함수가 있습니다. double d = static_cast (nint (d * tenbillion))/십억이지만 훨씬 빠릅니다. –
steviekm3
'std :: 엡실론 '과 같은 지정된 정밀도 내에서'double'을 비교하는 것은 어떻습니까? 아니면 특정 범위 내에서 작동하는 경우 고정 소수점 값을 사용합니까? –