签入一个整数可以被另一个整数整除(Swift)

Tom*_*mer 10 integer division swift

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

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

例:

var numberOne = 3
var numberTwo = 5
Run Code Online (Sandbox Code Playgroud)

numberTwo不是一个倍数,numberOne因此我希望它numberTwo最多可以达到6.

我该怎么做?谢谢

Ant*_*nio 18

您可以使用模运算符%:

numberTwo % numberOne == 0
Run Code Online (Sandbox Code Playgroud)

模数在2个数字之间找到整数除法的余数,例如:

20 / 3 = 6
20 % 3 = 20 - 6 * 3 = 2
Run Code Online (Sandbox Code Playgroud)

20/3的结果是6.666667 - 被除数(20)减去该除数的整数部分乘以除数(3*6)是模数(20 - 6*3),在这种情况下等于2.

如果模数为零,则除数是除数的倍数

有关维基百科页面模数的更多信息.


max*_*ell 6

1)如果要检查或一个整数除以另一个整数:

迅捷5

if numberOne.isMultiple(of: numberTwo) { ... }
Run Code Online (Sandbox Code Playgroud)

Swift 4以下

if numberOne % numberTwo == 0 { ... }
Run Code Online (Sandbox Code Playgroud)

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
}
Run Code Online (Sandbox Code Playgroud)


Sar*_*ith 6

斯威夫特 5

isMultiple(of:)

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

func isMultiple(of other: Int) -> Bool

let rowNumber = 4

if rowNumber.isMultiple(of: 2) {
    print("Even")
} else {
    print("Odd")
}
Run Code Online (Sandbox Code Playgroud)