Почему 500 % 30 возвращает 20 в Swift

#modulo

Вопрос:

В настоящее время я пытаюсь изучить Swift для разработки приложений для iOS. Я довольно новичок в программировании в целом, но у меня есть некоторый опыт работы на других языках

Я только что узнал об операторе по модулю или операторе остатка, в зависимости от того, как вы его называете. (%) Он должен возвращать остаток уравнения, верно?

 var equation = 500 % 30
 

Когда я печатаю уравнение, оно пишет «20», но я не могу понять, почему? 30 не вписывается в 500 20 раз, это 16,6. Оператор / вернет 16, поэтому я ожидал, что % вернет все, что останется?

Пожалуйста, скажи мне, если я веду себя глупо, но я не могу этого понять.

Ответ №1:

a % b не определяет, сколько раз b вписывается a . Оператор по модулю определяет, что остается, когда вы вычитаете наибольшее кратное b , которое меньше, чем a от a . В этом случае наибольшее кратное 30 этому меньше, чем 500 есть 480 , и 500 - 480 = 20 , таким 500 % 30 = 20 образом .

Ответ №2:

Я чувствую себя глупо. Извините.

480-это наибольшее число, в которое может идеально вписаться 30, поэтому остается 20.