Как правильно рассчитать с модулем %? Консольное приложение на C#

#c# #math #console #modulo

Вопрос:

как я могу получить правильный вывод при выполнении уравнений с модулем? Это делается в консольном приложении.

Например:

уравнение с плавающей точкой = (35 5) % 3;

вывод: 1, когда правильный ответ должен быть 1.2.

Я пробовал уравнение с плавающей точкой = (35 5) % 3f;

или

Приставка.Линия записи((плавающее)уравнение);

Но я действительно не знаю, как заставить это работать. Очень благодарен за любой ответ.

Комментарии:

1. 1 — правильный ответ, почему вы думаете, что это должно быть 1.2? Как вы думаете, что должен делать оператор модуля ( % )? Я ожидал бы ответа 1, потому что (35 5) равно 40, а 40% 3 должны возвращать остаток при делении 40 на 3. 40/3 = 13 остаток 1 (т. Е. 13 х 3 = 39, поэтому остаток 40-39 = 1). У вас другое понимание модуля?

2. я хотел бы услышать ваши рассуждения о том, почему модуль двух целых чисел должен когда- либо приводить к чему-либо, кроме целого числа.

3. Взглянув на это с другой стороны, если вы знаете, что 1.2-это ответ, которого вы ожидаете, и вы догадались, что модуль может быть правильным способом получить этот ответ, пожалуйста, не могли бы вы объяснить, почему 1.2 является правильным ответом для вашей ситуации? Возможно, тогда кто-то сможет помочь вам понять, как достичь желаемого результата.

4. вот документация

5. en.wikipedia.org/wiki/Modulo_operation

Ответ №1:

Модуль дает вам остаток целого деления:

 40/3 = 13
13 * 3 = 39
40 - 39 = 1 
 

1 — это остальное

Комментарии:

1. Глупый пример с моей стороны, извините. Как насчет этого: (30 9) % 6 = получает ответ 3 в моем консольном приложении. 39 / 6 = 6.5 6.5 * 6 = 39

2. ЦЕЛОЧИСЛЕННОЕ ДЕЛЕНИЕ !!!! 39 / 6 = 6 !!!

3. Но что, если я не хочу, чтобы это было целочисленное деление, разве это невозможно?

4. Модуль всегда является целым числом. Если у вас есть деление с плавающей запятой, у вас никогда не будет отдыха, и вам вообще не нужен модуль.

5. Ну ладно. Большое спасибо. Поэтому мне нужно переделать уравнение, чтобы избавиться от модуля. Правильно?