【问题标题】:What does % mean in C#?% 在 C# 中是什么意思?
【发布时间】:2012-04-25 17:18:02
【问题描述】:

抱歉,% 符号可能与可搜索性不一致。

% 是什么意思?我似乎无法坚持下去。

例子:

rotation = value % MathHelper.TwoPi;

是一个特定的实例。

但我发现更频繁地使用% 的代码。模数我“认为”它被称为,但我不是积极的。

上一篇文章:

With well thought out awnser

【问题讨论】:

  • 根据Eric Lippert,目前的大多数答案都是(略)错误的——它是余数,而不是模数。
  • 感谢所有有用文章的链接,伙计们。
  • 哦,你找到了以前的帖子!我没看到,谢谢你找到它。这个帖子可以在mod闲暇时删除。

标签: c# .net operators


【解决方案1】:

它是modulus operator。它计算第一个操作数除以第二个操作数后的余数,例如

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

【讨论】:

  • 不是模数。它余数。两者不是同义词。
  • 谢谢,不知道有什么区别。
【解决方案2】:

在 C# 中表示modulus,基本上是

示例:

int remainder = 10 % 3 //remainder is 1

【讨论】:

  • 模数和余数是不同的东西。 Eric Lippert 有很好的帖子 (blogs.msdn.com/b/ericlippert/archive/2011/12/05/…)
  • 如果你看文章,它说“% 运算符不是规范的模运算符,它是余数运算符。”虽然它被命名为模数。所以叫取模算子,其实是余数算子
  • 是的,你是对的,我只是想强调这不是规范模数运算符。赞成你回答。
【解决方案3】:

【讨论】:

【解决方案4】:

【讨论】:

    【解决方案5】:

    % Operator (C# Reference)

    % 运算符计算除其第一个操作数后的余数 由它的第二个。所有数值类型都有预定义的余数运算符。

    【讨论】:

      【解决方案6】:

      它是模运算符。它返回整数的余数。

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

      【讨论】:

      • 模数和余数是不同的东西。 Eric Lippert 有很好的帖子 (blogs.msdn.com/b/ericlippert/archive/2011/12/05/…)
      • @Nikolay 它在 MSDN 上清楚地指出 % 是模运算符并计算整数的余数,这就是我在我的回答中提出的内容:msdn.microsoft.com/en-us/library/0w4e0fzs(v=vs.80).aspx 为什么要投票?如果您对 MSDN 上的内容有疑问,您应该与他们一起讨论 :)
      • 是的,你是对的,我只是想强调这不是规范模数运算符。赞成你回答。
      • 它清楚地说明了在旧文档中。 2010 和 VS11 文档已删除该错误。所以充其量你可以断言“它被命名为......”
      【解决方案7】:

      让我们这么说

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

      无法保证

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

      所以我们必须在方程中加上一个余数:

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

      这意味着“%”运算符的结果可以是负数,这意味着“%”或余数运算符不同于模关系,因为结果不能保证是规范的。

      【讨论】:

        猜你喜欢
        • 2013-03-09
        • 2011-07-07
        • 2016-12-08
        • 2016-04-19
        • 2015-04-11
        • 2011-08-25
        • 2016-04-03
        • 2011-11-26
        • 1970-01-01
        相关资源
        最近更新 更多