让我们进行基本的算术运算——取模
我根据不同的语言得到不同的输出。
python
>>> -1 % 12
11
C#
var res = -1 % 12;
output: res = -1
为什么我会看到这样的行为?理想情况下,我希望两种情况下的输出都是 11。
还有谁知道我是否可以在 C# 中实现这一点?
最佳答案
问题前提不正确。 C# 中的 %
运算符不是模数运算符,它是余数 运算符,而在 Python 中它是模数运算符。
作为Eric Lippert Describes ,模数和余数对于所有正数都是相同的,但它们处理负数的方式不同。
尽管 C# 和 Python 都有 %
运算符,但这并不意味着它们都表示模数。
值得注意的是,其他语言(例如 C++ 和 Java)对 %
运算符使用余数,而不是模数,这可能是 C# 选择使用余数的原因。由于 %
运算符的含义没有太多一致性,我建议在使用新语言时在语言文档中查找它。
关于c# - 数字的模数 - python vs c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18106156/