print(10%3) --輸出1
上面代碼中,10除以3的商為3,余數(shù)為1,因此輸出結(jié)果為1。
注意,取余運(yùn)算符要求兩個(gè)操作數(shù)必須都是數(shù)字型,并且不支持字符串類型的取余運(yùn)算。如果其中一個(gè)不是數(shù)字,則會(huì)拋出錯(cuò)誤。
math.randomseed(os.time()) --設(shè)置隨機(jī)數(shù)種子為當(dāng)前時(shí)間戳 print(math.random(1, 100)) --輸出1~100中的隨機(jī)數(shù)
上面代碼中,我們通過math.randomseed()函數(shù)設(shè)置隨機(jī)數(shù)的種子為當(dāng)前時(shí)間戳,以確保每次運(yùn)行程序都會(huì)得到不同的隨機(jī)數(shù)。然后使用math.random()函數(shù)生成1~100之間的隨機(jī)數(shù)。
print(10%3) --輸出1
上面代碼中,10除以3的商為3,余數(shù)為1,因此輸出結(jié)果為1。
print(10%3.5) --輸出2.5
上面代碼中,10除以3.5的商為2,余數(shù)為3,因此輸出結(jié)果為2.5。
如果兩個(gè)操作數(shù)都是整數(shù),則取余運(yùn)算的結(jié)果也是整數(shù)。
print(-10%3) --輸出2
上面代碼中,-10除以3的商為-4,余數(shù)為2,因此輸出結(jié)果為2。這個(gè)結(jié)果可能會(huì)有些出乎意料。實(shí)際上,Lua的取余運(yùn)算是根據(jù)C的語法規(guī)則實(shí)現(xiàn)的,也就是說,取余運(yùn)算的結(jié)果與第一個(gè)操作數(shù)的符號(hào)相同。因此,如果第一個(gè)操作數(shù)是負(fù)數(shù),那么余數(shù)也是負(fù)數(shù)。
如果我們想要得到正數(shù)結(jié)果,則可以使用以下代碼:
print((-10%3+3)%3) --輸出1
上面代碼中,我們先將-10%3計(jì)算出來,得到-1,然后加上3得到2,最后再對(duì)3取余,得到1,這個(gè)結(jié)果是正確的。
function get_script_path() local str = debug.getinfo(2, "S").source:sub(2) return str:match("(.*/)") end print(get_script_path()) --輸出當(dāng)前程序所在目錄
上面代碼中,我們定義了一個(gè)get_script_path()函數(shù)來獲取當(dāng)前程序所在目錄,然后調(diào)用這個(gè)函數(shù)并打印輸出結(jié)果。
local file = io.open("file.txt", "r") local content = file:read("*all") file:close() print(content)
上面代碼中,我們打開一個(gè)名為file.txt的文件,使用read("*all")函數(shù)讀取整個(gè)文件的內(nèi)容,然后關(guān)閉文件。最后,我們輸出文件內(nèi)容。
以上就是Lua取余的相關(guān)內(nèi)容,希望對(duì)大家有所幫助。