我希望四捨五入浮點數來設置精度並返回函數的結果。例如,我現在有以下功能: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] == point.v[i]
比較,我只希望數字比較一組特定的精度,因此,如果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),我會使用某些東西。 – Myx 2010-02-28 17:22:36
我的意思是,你需要根據你需要精確的位數來改變1e-9。 – 2010-02-28 17:28:46