检查整数是否可以被另一个整数整除(Swift)

时间:2014-11-27 17:20:59

标签: swift integer division

我需要检查整数是否可以被另一个整数整除。

如果不是,我想把它四舍五入到最接近的数字。

示例:

var numberOne = 3
var numberTwo = 5

numberTwo不是numberOne的倍数,因此我希望将numberTwo舍入为6。

我该怎么做? 谢谢

4 个答案:

答案 0 :(得分:17)

您可以使用模运算符%

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维基百科页面上模数的详细信息。

答案 1 :(得分:4)

1)如果要检查还是将一个整数除以另一个整数:

快速5

if numberOne.isMultiple(of: numberTwo) { ... }

Swift 4或更少

if numberOne % numberTwo == 0 { ... }

2)函数舍入到最接近的倍数值:

func roundToClosestMultipleNumber(_ numberOne: Int, _ numberTwo: Int) -> Int {

    var result: Int = numberOne

    if numberOne % numberTwo != 0 {

        if numberOne < numberTwo {
            result = numberTwo
        } else {
            result = (numberOne / numberTwo + 1) * numberTwo
        }
    }

    return result
}

答案 2 :(得分:2)

您可以使用truncatingRemainder。例如,

if number.truncatingRemainder(dividingBy: 10) == 0 {                
    print("number is divisible by 10")   
}

答案 3 :(得分:0)

雨燕5

  

isMultiple(of:)

     

如果此值是给定值的倍数,则返回true   值,否则返回false。

     

func isMultiple(of other: Int) -> Bool

let rowNumber = 4

if rowNumber.isMultiple(of: 2) {
    print("Even")
} else {
    print("Odd")
}