2012-01-21 12 views

答えて

16

このような、ゼロ除算の余りを比較する:

12 % 6 == 0 

18 % 6 == 0 

20 % 6 ~= 0 

モジュラス演算子(%)除算の余りを返します。 12及び6のためには0であるが、20および6のためにそれが使用する式は2

ある:a % b == a - math.floor(a/b)*b

+2

を%程度のクールなものは、それが0との比較のためだけでなく – etandel

0

モジュラス演算子を使用に伴う問題は、それが負の数で正常に動作しないれています。あなたが負の数を使用しているつもりなら、代わりにmath.fmodを使用します。

[email protected] ~ $ lua 
> return -13%6 
5 
> return 13%6 
1 
> return math.fmod (-13, 6) 
-1 
> return math.fmod (13, 6) 
1 
> 
+0

実数上で動作することで、剰余演算子は、正常に動作するように見えます。特別な関数呼び出しを行う必要はありません。 – BMitch

+0

実際これは良い点です。 –

+1

'-13%6 == 5 'が間違っているかどうかは意見です。これはしばしばあなたが望むふるまいです。 – Eric

関連する問題