如何在excel中實現四捨六入五留雙

時間 2021-09-06 02:01:29

1樓:小小小兔

方法:1、開啟excel**,在資料單元格後一列輸入:=if(right(b1,1)="5",b1,round(b1,1))

就可以得到四捨五入的值 ,如圖。

2、之後,其他的單元格向下填充即可。

2樓:匿名使用者

要用excel來實現,首先要了解其原理,如下所示:

四捨六入五留雙規則

為了避免四捨五入規則造成的結果偏高,誤差偏大的現象出現,一般採用四捨六入五留雙規則。

四捨六入五留雙規則的具體方法是:

(一)當尾數小於或等於4時,直接將尾數捨去。

例如將下列數字全部修約為四位有效數字,結果為:

0.53664——0.5366

10.2731——10.27

18.5049——18.50 0.58344——0.5834

16.4005——16.40

27.1829——27.18

(二)當尾數大於或等於6時,將尾數捨去並向前一位進位。

例如將下列數字全部修約為四位有效數字,結果為:

0.53666——0.5367

8.3176——8.318

16.7777——16.78 0.58387——0.5839

10.29501——10.30

21.0191——21.02

(三)當尾數為5,而尾數後面的數字均為0時,應看尾數「5」的前一位:若前一位數字此時為奇數,就應向前進一位;若前一位數字此時為偶數,則應將尾數捨去。數字「0」在此時應被視為偶數。

例如將下列數字全部修約為四位有效數字,結果為:

0.153050——0.1530

12.6450——12.64

18.2750——18.28 0.153750——0.1538

12.7350——12.74

21.845000——21.84

(四)當尾數為5,而尾數「5」的後面還有任何不是0的數字時,無論前一位在此時為奇數還是偶數,也無論「5」後面不為0的數字在哪一位上,都應向前進一位。

例如將下列數字全部修約為四位有效數字,結果為:

0.326552——0.3266

12.73507——12.74

21.84502——21.85 12.64501——12.65

18.27509——18.28

38.305000001——38.31

按照四捨六入五留雙規則進行數字修約時,也應像四捨五入規則那樣,一次性修約到指定的位數,不可以進行數次修約,否則得到的結果也有可能是錯誤的。例如將數字10.2749945001修約為四位有效數字時,應一步到位:

10.2749945001——10.27(正確)。

如果按照四捨六入五留雙規則分步修約將得到錯誤結果:10.2749945001——10.

274995——10.275——10.28(錯誤)。

其次假設我們保留小數點後兩個有效數,在a1欄輸入資料,b1欄輸入如下公式即ok

=if((mid(a1,(len(int(a1))+4),1))="5",if(len(a1)-len(int(a1))>4,(rounddown(a1,2)+0.01),(if(mod(mid(a1,(len(int(a1))+3),1),2)=0,rounddown(a1,2),(rounddown(a1,2)+0.01)))),round(a1,2))

不防驗證一下!

3樓:無聊挨踢人

=if(right(b1,1)="5",b1,round(b1,1))

四捨六入五成雙在excel裡怎麼設定?

4樓:一點設計演示

1、按alt+f11

thisworkbook-插入-模組。

2、將下面**拷貝進去。

function tranvalue(rng as double, number as integer) as double

tranvalue = round(rng, number)end function

3、在電子**中直接使用公式

= tranvalue(a1,1) ;然後向下拉公式既可以.

5樓:

假設a1是通過多位小數的數值(這裡4位以上),按四捨六入五成雙保留二位小數。公式為:

=if(mid(a1-int(a1),5,1)*1>5,int(a1)+mid(a1-int(a1),1,4)+0.01,if(mid(a1-int(a1),5,1)*1<5,int(a1)+mid(a1-int(a1),1,4),if(mid(a1-int(a1),6,1)*1>0,int(a1)+mid(a1-int(a1),1,4)+0.01,if(iseven(mid(a1-int(a1),4,1)*1),int(a1)+mid(a1-int(a1),1,4),int(a1)+mid(a1-int(a1),1,4)+0.

01))))

6樓:匿名使用者

=round(a1,0)

7樓:匿名使用者

=ceiling(round(a1,0),2)

8樓:匿名使用者

=round(a1,保留位數)-(mod(abs(a1)*10^(保留位數+1),20)=5)*10^(-保留位數)*(a1/abs(a1))

詳解如下:

round(a1,保留位數)將數值直接四捨五入到保留位數,只有當保留位數後一位為5時才需要額外判斷條件,這部分由(mod(abs(a1)*10^(保留位數+1),20)=5)*10^(-保留位數)*(a1/abs(a1))實現。

首先abs(a1)*10^(保留位數+1)是將數值取絕對值並將數值擴大10^(保留位數+1)倍,即將小數點右移(保留位數+1)位,再通過mod函式,除數為20來取餘。餘數在0~20之間,然後判斷該餘數是否=5。

如果結果不等於5,則邏輯值為false,運算中取0值,減號後面的部分為0,最後結果即為round函式的結果;

只有在餘數等於5時,說明5前是偶數,且5後沒有任何數字,此時不需要進位,而round函式將其進位,所以需要減掉。此時邏輯值為true,運算中取1,進的哪一位就要減掉哪一位,最後通過(a1/abs(a1))確保原值為負時是加而不是減。

四捨六入五成雙在excel怎麼實現?

9樓:一點設計演示

1、按alt+f11

thisworkbook-插入-模組。

2、將下面**拷貝進去。

function tranvalue(rng as double, number as integer) as double

tranvalue = round(rng, number)end function

3、在電子**中直接使用公式

= tranvalue(a1,1) ;然後向下拉公式既可以.

10樓:

這樣最直觀:

=int(a2)+if(mod(a2,1)>=0.55,1,0)如果要保留2位小數:

=(int(a2*100)+if(mod(a2*100,1)>=0.55,1,0))/100

11樓:全枋潔

兩種情況:

1.被修約數 / 小數點後位數 / 結果0.0834501 / 4 / 0.0835

其中結果一欄(0.0835)的設定為:=round((trunc(a2*10^(b2+1))-((a2*10^(b2+1)-trunc(a2*10^(b2+1)))<=0)*(mod(trunc(a2*10^(b2+1)),5)=0)*(1-mod(int(a2*10^b2),2))*5)/10^(b2+1),b2)

2.(可用於負數)

被修約數 / 小數點後位數 / 結果0 / 3 / 0其中結果一欄的設定公式為:=if(a2=0,0,(if(a2>0,round((trunc(a2*10^(b2+1))-((a2*10^(b2+1)-trunc(a2*10^(b2+1)))<=0)*(mod(trunc(a2*10^(b2+1)),5)=0)*(1-mod(int(a2*10^b2),2))*5)/10^(b2+1),b2),-(round((trunc(abs(a2)*10^(b2+1))-((abs(a2)*10^(b2+1)-trunc(abs(a2)*10^(b2+1)))<=0)*(mod(trunc(abs(a2)*10^(b2+1)),5)=0)*(1-mod(int(abs(a2)*10^b2),2))*5)/10^(b2+1),b2)))))

excel中如何四捨五入,EXCEL中如何設定四捨五入?

excel中快速四舍五 excel如何進行四捨五入?在excel中如何快速的進行四捨五入 excel四捨五入一般用round函式,具體說明如下圖 當然,將單元格區域設定為數值格式,設定小數位數 0時,會按四捨五入顯示數值 一般預設的都是四捨五入的,你要是保留小數位的話,你可以先選擇該單元格,然後右鍵...

excel四捨五入問題,Excel 四捨五入 取整 問題

excel如何進行四捨五入?一種用if 巢狀二種方法公式 lookup a1,但你的這個資料是不是隻在1 2之間,如不在又要如何處理 round 函式 round函式的作用是返回某個數字按指定位數取整後的數字。語法為 round number,num digits 其中number是需要進行四捨五入...

在EXCEL裡如何實現四捨六入五奇偶任意位數保留整數,1位小數,2位小數,3位小數。請高手們賜教

假設資料在a1中,保留到整數,公式可為 round a1,0 mod a1 10,20 5 其實,所謂的四捨六入,其它與四捨五入頗為相似,僅是在小數點後面正好為0.5時,作一個判斷,如果前面是偶則不進,是奇則進,所以,先不管三七二十一,按四捨五入round進上去再說,round a1,0 就是四捨五...