3

除算の余りが整数かゼロかを確認する方法を知っている人はいますか?

if ( integer ( 3/2))
4

6 に答える 6

27

このようなモジュロ演算子を使用する必要があります

// a,b are ints
if ( a % b == 0) {
  // remainder 0
} else
{
  // b does not divide a evenly
}
于 2013-01-02T22:19:30.407 に答える
3

探しているのはモジュロ演算子の%ようです。これにより、残りの演算が実行されます。

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
于 2013-01-02T21:45:01.577 に答える
0

迅速3:

if a.truncatingRemainder(dividingBy: b) == 0 {
    //All integer values go here
}else{
    //All non-integer values go here
}
于 2017-05-16T21:55:03.393 に答える
0

以下のコードを使用して、インスタンスのタイプを知ることができます。

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")
}

上記が役に立ったかどうか教えてください。

于 2017-07-12T06:39:41.777 に答える
0

スウィフト5

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

Swift4以下

if numberOne % numberTwo == 0 { ... }
于 2019-02-03T01:13:46.923 に答える
-1

Swift 2.0

print(Int(Float(9) % Float(4)))   // result 1
于 2016-02-19T02:14:03.610 に答える