lua取模運算math.fmod和% 的區別


我們知道,取模就是求余的意思,比如3%2=1這樣子。

lua中的%就是求余的運算符號,此外在數學庫中還有一個math.fmod的函數,他們都能進行求余運算:
print(15%4,math.fmod(15,4))

--輸出:0.1 0.1

 

另外可以對小數進行求余運算:
print(3.1%1.5,math.fmod(3.1,1.5))

--輸出:0.1 0.1

 

這樣看來2個是沒有區別的,但是:

 

print(-2%3,math.fmod(-2,3))

--輸出:1,-2

 

以為 y%x運算總是將y/x的值向下取整,而math.fmod(y,x)是將y/x的值向0取整,所以-2%3得到的商是math.floor(-2/3)=-1,余數為1,而math.fmod(-2,3)得到的商是math.ceil(-2/3)=0,余數是-2。

總之當y/x為負數數,%和math.fmod會用不同的取整方式,故而有不同的余數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM