除算の余りが整数かゼロかを確認する方法を知っている人はいますか?
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
迅速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")
}
上記が役に立ったかどうか教えてください。
スウィフト5
if numberOne.isMultiple(of: numberTwo) { ... }
Swift4以下
if numberOne % numberTwo == 0 { ... }
Swift 2.0
print(Int(Float(9) % Float(4))) // result 1