你们中的任何人都知道如何检查除法余数是整数还是零?
if ( integer ( 3/2))
您应该像这样使用模运算符
// a,b are ints
if ( a % b == 0) {
// remainder 0
} else
{
// b does not divide a evenly
}
听起来您正在寻找的是模运算符%
,它将为您提供操作的其余部分。
3 % 2 // yields 1
3 % 1 // yields 0
3 % 4 // yields 1
但是,如果您想先实际执行除法,您可能需要一些更复杂的东西,例如:
//Perform the division, then take the remainder modulo 1, which will
//yield any decimal values, which then you can compare to 0 to determine if it is
//an integer
if((a / b) % 1 > 0))
{
//All non-integer values go here
}
else
{
//All integer values go here
}
演练
(3 / 2) // yields 1.5
1.5 % 1 // yields 0.5
0.5 > 0 // true
斯威夫特 5
if numberOne.isMultiple(of: numberTwo) { ... }
Swift 4 或更少
if numberOne % numberTwo == 0 { ... }
迅捷3:
if a.truncatingRemainder(dividingBy: b) == 0 {
//All integer values go here
}else{
//All non-integer values go here
}
您可以使用下面的代码来了解它是哪种类型的实例。
var val = 3/2
var integerType = Mirror(reflecting: val)
if integerType.subjectType == Int.self {
print("Yes, the value is an integer")
}else{
print("No, the value is not an integer")
}
让我知道以上是否有用。
斯威夫特 2.0
print(Int(Float(9) % Float(4))) // result 1