#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. вот документация
Ответ №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. Ну ладно. Большое спасибо. Поэтому мне нужно переделать уравнение, чтобы избавиться от модуля. Правильно?