부동 소수점 숫자를 반올림하여 정밀도를 설정하고 함수에서 결과를 반환하고 싶습니다. 예를 들어, 나는 현재 다음과 같은 기능을 가지고 : 내가 무엇을하고자하는 대신 직접 v[i] == point.v[i]
비교를하는 것입니다C++ 부동 소수점을 설정하여 정밀도를 설정하십시오.
inline bool R3Point::
operator==(const R3Point& point) const
{
// Return whether point is equal
return ((v[0] == point.v[0]) && (v[1] == point.v[1]) && (v[2] == point.v[2]));
}
, 내가 특정 세트의 정밀도로 숫자 만 비교하는 소원 그렇다면 v[i] = 0.33349999999999996
및 point.v[i] = 0.33350000000000002
그, 내 동등 비교 결과는 TRUE가됩니다.
나는 C++ smanip setprecision (int n);
기능이 있다는 것을 알고 있고, cout
을 사용하여 화면에 출력을 표시 할 때 많이 사용되는 것을 보았습니다. 그러나, 내가 설명한 것처럼 함수 내에서 사용할 수 있는지 확실하지 않습니다.
감사합니다.
그에 따라 정밀도 1e-9를 변경하면 무엇을 의미합니까? 필자의 경우에는 서명이 확실하지 않기 때문에 (fabs (v [0] -point.v [0]) <1e-9) if something을 사용할 것입니다. – Myx
나는 1e-9를 정확한 자리 수에 따라 바꿔야한다는 것을 의미했다. –