Почему оператор % (по модулю, остаток) возвращает разные результаты для отрицательных операндов в Python и в C#?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему оператор % (по модулю, остаток) возвращает разные результаты для отрицательных операндов в Python и в C#?

Сообщение Anonymous »

Сегодня я писал программу на C# и использовал % для расчета некоторого индекса... Моя программа не работала, поэтому я отладил ее и понял, что % не работает как и в других языках программирования, которые я знаю.
Например:
В Python % возвращает такие значения:

Код: Выделить всё

for x in range(-5, 6):
print(x, "% 5 =", x % 5)

Код: Выделить всё

-5 % 5 = 0
-4 % 5 = 1
-3 % 5 = 2
-2 % 5 = 3
-1 % 5 = 4
0 % 5 = 0
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
В C#:

Код: Выделить всё

for (int i = -5; i < 6; i++)
{
Console.WriteLine(i + " % 5 = " + i % 5);
}
Вывод:

Код: Выделить всё

-5 % 5 = 0
-4 % 5 = -4
-3 % 5 = -3
-2 % 5 = -2
-1 % 5 = -1
0 % 5 = 0
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
Я сделал что-то не так или % работает не так, как должно?


Подробнее здесь: https://stackoverflow.com/questions/100 ... or-negativ
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C++ по модулю возвращает противоречивые результаты
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • C++ по модулю возвращает противоречивые результаты
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Ни один оператор «>» не соответствует этой ошибке операндов в коде С++, как я могу решить эту проблему? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Зачем нужен оператор по модулю?
    Anonymous » » в форуме C++
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Python Append () против += оператор В списках, почему они дают разные результаты?
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»