Lua中關(guān)于求模與求余的區(qū)別介紹
我覺得很多人搞不清楚這兩個概念的區(qū)別,剛好在翻譯lua手冊時遇到%與math.fmod這兩個操作,順便做一下說明吧。
求模與求余的區(qū)別。
假設(shè)對a與b兩個整數(shù)做求?;蚯笥嗖僮鳌D敲吹谝徊绞窍惹笳麛?shù)商c,即a / b的值,第二步是計算?;蛴鄶?shù):a - c * b。求模與求余的區(qū)別在于怎么處理a / b的值。
求模運算時,a / b的結(jié)果向無窮小方向舍入,求余運算時a / b的結(jié)果向0方向舍入。
因此,求模時結(jié)果的符號與b一致,求余時結(jié)果的符號與a一致。
在Lua中4%(-3)等于-2,由此可以看出lua的%是求模操作而不是求余操作。4/(-3)向無窮小舍入為-2,則模數(shù)為4 - (-2 * -3) = -2。
在Lua中math.fmod(4,-3)等于1,因此fmod是求余操作而不是求模操作。4/(-3)向0方向舍入為-1,則余數(shù)為4-(-1 * -3)= 1。
很容易可以得出另一個結(jié)論:如果a,b都是正整數(shù)的話,求模與求余沒有區(qū)別。
相關(guān)文章
Lua基礎(chǔ)教程之表(Table)學(xué)習(xí)筆記
這篇文章主要介紹了Lua基礎(chǔ)教程之表(Table)學(xué)習(xí)筆記,本文來自個人總結(jié),需要的朋友可以參考下2014-09-09Lua中變相實現(xiàn)continue跳出循環(huán)
這篇文章主要介紹了Lua中變相實現(xiàn)continue跳出循環(huán),Lua中是沒有continue的,本文使用一個小技巧實現(xiàn)了跟continue一樣的效果,需要的朋友可以參考下2014-12-12Openresty服務(wù)器使用lua腳本寫的Hello World簡單實例
這篇文章主要介紹了Openresty服務(wù)器使用lua腳本寫的Hello World簡單實例,OpenResty (也稱為 ngx_openresty)是一個全功能的 Web 應(yīng)用服務(wù)器。它打包了標(biāo)準(zhǔn)的 Nginx 核心,很多的常用的第三方模塊,以及它們的大多數(shù)依賴項,需要的朋友可以參考下2015-04-04Lua Table轉(zhuǎn)C# Dictionary的方法示例
這篇文章主要給大家介紹了關(guān)于Lua Table轉(zhuǎn)C# Dictionary的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03