0
Абсолютно не понимаю оператор "деление по модулю", он же "остаток от деления", он же "%"
Например опробовал c#: int a = 1; int b = 2; double c = a/b; //ответ 0 - почему не 0,5? double d = a%b; //ответ 1 - откуда берётся единица, а не 5... Остаток же. Едем дальше: double x = 0.5; int y = 2; double z = a/b; //ответ 0,25 - удивительно правильно. double i = a%b; //ответ 0,5 - опять почему 0,5? Этот оператор какой то не остаток от деления, а "удивительный фокусник", за гранью моего понимания. И стараюсь этим оператором вообще не пользоваться.
10 Answers
+ 6
You are mixing datatypes in your examples
Try with the same datatypes or try casting to another type and see what results you get
+ 4
Вы смешиваете типы данных в своих примерах
Попробуйте использовать те же типы данных или попробуйте выполнить кастинг на другой тип и посмотрите, какие результаты вы получите
+ 4
This is how to do it in c++
https://code.sololearn.com/cz7bUsm82X5m/?ref=app
I don't know c# well enough to answer for that.
+ 4
Вот как это сделать в c ++
https://code.sololearn.com/cz7bUsm82X5m/?ref=app
Я не знаю c # достаточно, чтобы ответить за это.
+ 1
Обычно я просто часами подбираю сложные формулы что бы добиться того чего мне нужно.
+ 1
Хорошо... значит всё как всегда дело в погрешностях... Или как это называется.
0
Эм, тут даже нет функции "ответить".
Насчёт смешения - а как тогда иначе, на одних целочисленных? тогда зачем нужны такие точные инициализации типов данных...
Кстати на js тоже немыслимые результаты получаются с этим оператором, а там тип данных не объявляется явно.
0
Честно говоря надоедает часами сидишь в экран и не понимаешь "что хочешь сделать" и "что делаешь", а потом просто забрасываешь и потом только через полгода возвращаешься к старым задумкам. Кажется опять "коддинг" отпускает... То ли я такой тупой, но ни мотивации, ни нормальной практики нет.
0
Как я понимаю, первом примере у тебя сперва получается целочисленный результат, который затем переводится в double, из за чего теряется точность, поэтому a/b получается 0 а не 0.5.
По поводу % - если делимое меньше делителя, то делимое и будет результатом %