2014-11-27 2 views
5

Мне нужно проверить, является ли целое число делимым на другое целое.Проверка целого числа делится на другое целое число (Swift)

Если нет, я хотел бы округлить его до ближайшего кратного числа.

Пример:

var numberOne = 3 
var numberTwo = 5 

numberTwo не кратна numberOne поэтому я хотел бы, чтобы округлить numberTwo до 6.

Как бы это сделать? Спасибо

ответ

8

Вы можете использовать оператор по модулю %:

numberTwo % numberOne == 0 

по модулю находит остаток от целочисленного деления между 2 чисел, так, например:

20/3 = 6 
20 % 3 = 20 - 6 * 3 = 2 

Результат 20/3 - 6.666667 - дивиденд (20) минус целая часть этого деления, умноженная на делитель (3 * 6), является модулем (20 - 6 * 3), равным 2 в этом случае.

Если по модулю равен нуль, то дивиденд является кратным делителя

Более подробной информации о модуле на this википедией страницы.

+0

Первая часть работает для меня, однако я не уверен, что означает нижняя строка. Как мне решить, что я должен добавить к 20, чтобы сделать его делимым на 3? Я хотел бы округлить его. Спасибо –

+0

Обновлен ответ - надеюсь, что это объяснит немного. – Antonio

1

Вы можете использовать truncatingRemainder. Например,

if number.truncatingRemainder(dividingBy: 10) == 0 {     
    print("number is divisible by 10") 
} 
Смежные вопросы