2013-11-27 98 views
-2

我有一個函數返回值的長度問題,當我計算東西時,它給了我不同長度的變量,這就是爲什麼我不能總結它們並進行比較。返回可變長度的C++函數

例如:函數計算線的長度AC它給4.24264 線AC由其它兩條線AB和BC的其是AB = 0.942809和BC = 3.29983 當你總結AB和BC它等於4.242639但是相同的函數給出了4.24264,所以C++不會說它們是平等的,那麼我該如何改變它?

編輯:函數返回雙和所有的變量是雙

+2

「double」或「float」數字幾乎不相等。你需要比較它們的精確度...... 'fabs(xy)<1.0e-6 * max(fabs(x),fabs(y))' –

+0

我的代碼中的每種類型都是雙重的 – eLbor

+0

這裏有一個很好的解讀:http://support.microsoft.com/ kb/42980 – edtheprogrammerguy

回答

4

看起來你處理浮點/雙精度比較。 This可能會有所幫助。