天道酬勤,学无止境

Check if an integer is divisible by another integer (Swift)

问题

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

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

例子:

var numberOne = 3
var numberTwo = 5

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

我该怎么做? 谢谢

回答1

您可以使用模运算符%

numberTwo % numberOne == 0

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

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

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

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

有关此维基百科页面上的模数的更多信息。

回答2

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
}
回答3

斯威夫特 5

isMultiple(的:)

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

func isMultiple(of other: Int) -> Bool

let rowNumber = 4

if rowNumber.isMultiple(of: 2) {
    print("Even")
} else {
    print("Odd")
}
回答4
if number.truncatingRemainder(dividingBy: 10) == 0 {                
    print("number is divisible by 10")   
}

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐