我正在研究C中的Nelder-Mead優化程序,其中涉及到兩個float
的平均值。在罕見的(但完全可重現的)情況下,兩個float
s,即x
和y
,只有它們的有效位的最低有效位不同。當取平均值時,舍入誤差意味着結果將是x
或y
。如何指定在哪個方向上舍入兩個浮點數的平均值,這兩個浮點數根據其有效數的LSB而不同?
我想指定舍入應該總是朝向第二個float
。也就是說,我不能簡單地指定四捨五入應該趨向於零或無窮大,因爲我不知道x
是否會大於y
。
(How)can I do that?
難道你不能只比較這兩個浮點數,並根據比較結果將舍入設置爲零,減去無窮大或加上無窮大? –
但是,你可以在你四捨五入時確定是否是'x> y',對吧? –
你可以,但有一個更簡單的方法來做到這一點。 –