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



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

如果没有,我想将其四舍五入到数字的最接近的倍数。

例:

var numberOne = 3
var numberTwo = 5

numberTwo不是numberOne的倍数,因此我希望它四舍五入numberTwo到 6。

我该怎么做?谢谢

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

斯威夫特 5

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

斯威夫特 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
}

您可以使用取模运算符%

numberTwo % numberOne == 0

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

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

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

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

有关模的更多信息,请访问此维基百科页面。

Swift 5

isMultiple(of:)

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

func isMultiple(of other: Int) -> Bool

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

您可以使用truncatingRemainder . 例如,

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

相关内容

最新更新