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.
如果模数为零,则除数是除数的倍数
有关此维基百科页面模数的更多信息.
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)
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)