2012-04-13 7 views
3

可能なリピート質問に申し訳ありません。%シンボルは検索可能性と一致しません。%はC#で何を意味しますか?

%は何を意味しますか?私はこれを守ることができない。

例:

rotation = value % MathHelper.TwoPi; 

は、特定のインスタンスです。

しかし、より頻繁に%を使用するコードが見つかりました。モジュラス私はそれが呼ばれていると思うが、私は肯定的ではない。

前の投稿:

With well thought out awnser

+5

[Eric Lippert](http://blogs.msdn.com/b/ericlippert/archive/2011/12/05/what-s-the-difference-remainder-vs-modulus.aspx)によると、ほとんど現在の答えの(微妙に)間違っている - それはモジュラスではなく、残りの部分です。 –

+0

有益な記事、人々へのすべてのリンクありがとう。 – SimpleRookie

+1

['%'演算子は何を意味しますか?](http://stackoverflow.com/questions/3264524/what-does-the-operator-mean) –

答えて

3

モジュラス演算子です。それは整数の残りを返します。

int remainder = 2 % 1; // (remainder variable is assigned to 0) 
int remainder2 = 3 % 2; // (remainder variable is assigned to 1) 
+0

モジュラスと残りは異なったものです。エリックLippertはそれについて非常に良い投稿をしています(http://blogs.msdn.com/b/ericlippert/archive/2011/12/05/what-s-the-difference-remainder-vs-modulus.aspx) – Nikolay

+1

@ニコライそれは明らかに%がモジュラス演算子であり、私が答えに入れた整数の残りを計算することをMSDNで明確に述べています:http://msdn.microsoft.com/en-us/library/0w4e0fzs(v=vs.80) ).aspx なぜdownvoteですか? MSDNに記載されているものに問題がある場合は、それらと一緒に取るべきです:) –

+0

はい、あなたは正しいです、私はそれが正準モジュラス演算子ではないことを強調したいと思いました。あなたは答えた。 – Nikolay

4

それはmodulus operatorです。第1のオペランドを第2のオペランドで除算した後の余りを計算する。 C#で

  1. 5%2 = 1
  2. 6%2 = 0
  3. 5%3 = 2
+3

モジュラスではありません。それは*残りの部分です。 2つは同義ではありません。 –

+0

ありがとう、私は違いがあることを知らなかった。 – PVitt

4

それは基本的に

の残りの部分である、modulus手段例:

int remainder = 10 % 3 //remainder is 1 
+0

モジュラスと残余は異なるものです。エリックLippertはそれについて非常に良い投稿をしています(http://blogs.msdn.com/b/ericlippert/archive/2011/12/05/what-s-the-difference-remainder-vs-modulus.aspx) – Nikolay

+0

その記事を見ると、「%演算子は正規のモジュラス演算子ではなく、残りの演算子です」と言われていますが、これはモジュラスという名前です。だからそれはモジュラス演算子と呼ばれますが、それは実際には残りの演算子です – mattytommo

+0

はい、あなたは正しいです、私はカノニカルモジュラス演算子ではないことを強調したいと思います。あなたは答えた。 – Nikolay

3

のは

z * y = x, because the "/" operator rounds down. 

だから私たちは私たちの式に残りを追加しなければならないという保証はありません

x/y = z, 
x, y, z being integers. 

としましょう:

z * y = x + r. 

z * y = x + r 
z * (-y) = - (z * y) = -(x + r) = -x - r 

これがあることを意味"%"演算子の結果は次のようになります。負の値になります。これは、 "%"または剰余演算子がモジュロ関係と異なることを意味します。これは、結果が正準であることが保証されていないためです。

関連する問題