0
我有以下代碼(m_threshold
(在區間[0..1])和binSize
(= 1000)是常數):怪異的結果差
std::vector<std::vector<ResidualEntry>> *bins = new std::vector<std::vector<ResidualEntry>>;
... //filling vector
int n = bins->size(); //is 27779
double a = -(2 * (n * binSize - m_threshold * pointCount))/((n * n + n) * binSize);
double a2 = -(2 * (bins->size() * binSize - m_threshold * pointCount))/((bins->size() * bins->size() + bins->size()) * binSize);
a
和a2
返回完全不同的數字。 a
約爲0.02,a2
爲-3.6e-5,這是正確的
爲什麼會發生這種情況?
請創建一個[mcve]。在幫助中:_「尋求調試幫助的問題(」爲什麼這個代碼不工作?「)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。」_ –
It很高興知道'binSize','m_threshold'和'pointCount'的類型。 – Bernard
請檢查您的等式*整數除法*。 *整數除法*截斷結果。嘗試在等式'double'中創建常量和變量。 –