让我们进行基本的算术运算 - 模数
我根据不同的语言得到不同的输出.
蟒蛇
>>> -1 % 12
11
Run Code Online (Sandbox Code Playgroud)
C#
var res = -1 % 12;
output: res = -1
Run Code Online (Sandbox Code Playgroud)
为什么我会看到这样的行为?理想情况下,我希望两种情况下的输出都是11.
也有人知道我是否可以在C#中实现这一目标?
Ser*_*rvy 10
问题的前提是不正确的.所述%在C#操作者不取模运算符,它是剩余运算符,而在Python它是一个模数运算符.
正如Eric Lippert描述的那样,所有正数的模数和余数都相同,但它们处理负数的方式不同.
尽管C#和Python都有%运算符,但并不意味着它们都代表模数.
值得注意的是,其他语言(如C++和Java)使用%运算符的余数,而不是模数,这可能导致C#选择使用余数的原因.由于%运营商的意思并不一致,我建议在使用新语言时在语言文档中查找.
| 归档时间: |
|
| 查看次数: |
579 次 |
| 最近记录: |