生活中使用四拾五入的方式來運算,簡單易懂,適合人們的心算。但是這樣的運算並不公平,因為1,2,3,4會被捨去,而5,6,7,8,9會進位。如果採取四捨六入會比較公平。
1,2,3,4捨去,而6,7,8,9進位,而5是以前一個位數是偶數或奇數而定。
即5要找最近的偶數,例如:
8.5捨去為8,8.5進位為9,取偶數為「8」。所以,若整數部分為偶數,則小數會捨去。
3.5捨去為3,3.5進位為4,取偶數為「4」。所以,若整數部分為奇數,則小數會進位。
相關說明可參閱:https://zh.wikipedia.org/wiki/奇進偶捨
【公式設計與解析】
若以公式來處理:
儲存格C2:=INT(A2+0.4+(MOD(INT(A2),2)=1)*0.1)
(1) MOD(INT(A2),2)=1
利用 MOD(INT(A2),2) 來判斷整數部分是奇數或偶數,若傳回值為 1,則為奇數,若傳回值為 0,則為偶數。
(2) (MOD(INT(A2),2)=1)*0.1
若整數部分為奇數則傳回「0.1」;若整數部分為偶數則傳回「0」。
(3) 0.4+(MOD(INT(A2),2)=1)*0.1
若整數部分為奇數則傳回「0.5」;若整數部分為偶數則傳回「0.4」。
(4) INT(A2+0.4+(MOD(INT(A2),2)=1)*0.1)
若整數部分為奇數,則小數會進位;若整數部分為偶數,則小數會捨去。
文章標籤
全站熱搜

請問老師~ 有關有效位數3位之千位數值,其四捨六入五成雙之公式應如何設定呢? 如: 1265 --> 1260
有關有效位數3位之千位數值,其四捨六入五成雙之公式應如何設定呢? 先除以10, 計算完再乘10回來就可以了
謝謝你替網友提供寶貴資訊。
有關有效位數3位之千位以上數值,其四捨六入五成雙中,需額外判定5後面是否有數字以決定是否進位,其公式應如何設定呢? 如: 12650 --> 12600 12651 --> 12700 12550 --> 12600
我想像比較簡單的解法是 +9, 延續 2F 的做法除 100, 算完再乘 100 回來 12650 + 9 = 12659 12659 / 100 = 126.59 四捨六入五成雙 126.00 126.00 * 100 = 12600 其他結果應該也會一樣
不用那麽麻煩 a是數值,b是修整的小數位數 function r2e=(a,b) r2e=(a*10^b+2^52-2^52)/10^b end function 解決
謝謝你提供寶貴意見。