乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      到底是哪里錯了?Excel中的四舍五入和VBA的四舍五入竟然不一樣?

       hercules028 2021-04-29

      今天介紹一個Excel中的“錯誤”:關(guān)于四舍五入的。

      先來看數(shù)據(jù)以及在Excel中的四舍五入的結(jié)果:

      圖片

      這個結(jié)果毫無問題,符合我們從小學(xué)就學(xué)習(xí)的四舍五入的概念,不到.5的都舍掉,超過.5(包含.5)的都進位。所以,2.4就變成了2,而-2.5變成了-3。

      現(xiàn)在,我們打開Excel的VBA編輯器,插入一個模塊,在其中輸入下面的一段代碼:

      Sub t() For i = 3 To 22 Sheet1.Cells(i, 5).Value = Round(Sheet1.Cells(i, 2).Value, 0) Next iEnd Sub

      圖片

      代碼中的VBA是VBA中的四舍五入函數(shù),它的用法跟Excel中的同名函數(shù)是一樣的,作用也相同,但是結(jié)果卻不一樣:

      圖片

      我們看到,在除了2.5,-2.5之外的所有其他數(shù)字上,用Excel的ROUND函數(shù)和用VBA的ROUND函數(shù)結(jié)果是相同的。

      在2.5和-2.5時,用Excel的Round函數(shù)是向上進位(姑且這么說吧),而用VBA的Round函數(shù)是是向下舍掉。

      那么是不是就是這個規(guī)律呢?當(dāng)然不是。往下看,輪到3.5和-3.5時,Excel的Round函數(shù)保持原來的規(guī)律不變,但是VBA的Round函數(shù)卻發(fā)生了變化,重新變回了“向上進位”。

      這是為什么呢?到底是誰錯了?

      圖片

      這里沒有哪個函數(shù)出錯。這是因為這兩個函數(shù)采用了不同的四舍五入的方案。

      我們普通理解四舍五入就是所有小于.5的數(shù)字舍掉,大于等于.5的數(shù)字進位。但是純粹從數(shù)字角度的來看,這么做,對于小于.5和大于.5的數(shù)字沒有任何爭議。但是當(dāng)數(shù)字等于.5時,這個規(guī)定就有點人為的痕跡了。.5距離兩邊相等,無論舍掉還是進位都造成了“不公平”的結(jié)果。此時,就有兩種方案,這兩種方案從它們各自的英文名稱來解釋就一目了然。

      方案1. AwayFromZero

      中文意思就是遠離0的方向。就是說當(dāng)?shù)扔?5的時候,就像遠離0的方向進行舍入操作。因此,2.5就變成了3,因為3比2離0更遠;而3.5變成了4,因為4比3離0更遠。在負的方向上,-2.5變成了-3,-3.5變成了-4(其實不是進位)。

      Excel中的Round函數(shù)就用了這個方案。

      方案2. ToEven

      Even是偶數(shù)的意思,這個方案就是將.5向最近的偶數(shù)進行舍入操作。因此,2.5變成了2(2是留2.5最近的偶數(shù)),3.5變成了4(4是留3.5最近的偶數(shù))。而-2.5也變成了-2,-3.5變成了-4。

      VBA中的Round函數(shù)就用了這個方案。

      你在使用的時候也注意這兩種區(qū)別,看看究竟哪種方案符合你的場景要求。

      圖片

      在Excel中,還有一個地方用到了舍入函數(shù),那就是Power Query。那么,在Power Query中這個四舍五入是怎么處理的?使用的是哪種方案?還有,為什么Excel會采用兩種不同的方案呢?我在下一篇中給大家詳細介紹。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多