数値が別の数値で割り切れるかどうかを確認したい:
for i = 1, 100 do
if i % 2 == 0 then
print( i .. " is divisible.")
end
end
これは問題なく機能するはずですが、私のサーバーのLuaでは、スクリプトに%
が含まれているとスクリプトは実行されません...理由がわからないので、それ?だから私は数の可分性を確認できますか?
ありがとうございました。
理想的ではありませんが、 Lua 5.2 Reference Manual :
a%b == a-math.floor(a/b)* b
必要なことを行うmath.fmod(x,y)
を使用します。
商をゼロに丸めるxをyで割った余りを返します。
function mod(a, b)
return a - (math.floor(a/b)*b)
end
math.fmod
を使用して、 luaマニュアルmath.mod
はlua 5.1でmath.fmod
に名前が変更されました。
for i = 1, 100 do
if (math.mod(i,2) == 0) then
print( i .. " is divisible.")
end
end
Lua 5.0は%
演算子をサポートしていませんでした。
Luaは通常の算術演算子をサポートしています。バイナリ+(加算)、 減算)、*(乗算)、/(除算)、および^(指数)。および単項-(否定)。
---(https://www.lua.org/manual/5.0/manual.html
ただし、Lua 5.1は%
演算子をサポートします。
Luaは通常の算術演算子をサポートしています。バイナリ+(加算)、 減算)、*(乗算)、/(除算)、%(モジュロ)、^(指数)。および単項-(否定)。
---(https://www.lua.org/manual/5.1/manual.html
可能であれば、アップグレードすることをお勧めします。それが不可能な場合は、5.0で 数学関数 の1つとしてリストされているmath.mod
を使用します( Lua 5.1 でmath.fmod
に名前が変更されました)