c# - 数字的模数 - python vs c#

标签 c# python

让我们进行基本的算术运算——取模

我根据不同的语言得到不同的输出。

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/

相关文章:

c# - 将按钮缩放到文本 Xamarin Forms

c# - 我想从 mysql 数据库检索图像,但出现错误 "system parameter is not valid at system drawing image fromstream... "

c# - SQLite PCL 数据库插入花费太多时间

c# - XmlDocument 存在于哪个程序集中,以及如何使用它?

Python JSON 解码得到错误的值

python - 如何以高刷新率将数据流式传输到 Jupyter 中的 Bokeh 图?

c# - 如何将大数据表复制到 MySql 表?

python - 无文件静态分析

python - 如何精确查找和替换

python - 在函数中调用 locals() 不直观?