1. 程式人生 > >Qt 中 qRound() 函式的使用時的一個小問題

Qt 中 qRound() 函式的使用時的一個小問題

Qt 中的 qRound() 函式是用來對浮點數四捨五入的。我最近在寫的一個演算法中用到了這個函式,發現了一個小問題。

我的那個程式碼類似這樣:

double f;
int i, j, k;

j = i + qRound(f);
k = j - qRound(-f);

按照我最開始的想法,這裡的 j 和k 應該是相同的。結果測試時發現對某些 f ,這兩個值是不同的。

仔細研究了一下,發現是這樣的,四捨五入時超過0.5是向上舍入的,也就是。

qRound(0.5) = 1
qRound(-0.5) = 0

因此 -qRound(-f) != qRound(f)。