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

斯威夫特 5

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

Swift 4 或更少

if numberOne % numberTwo == 0 { ... }
于 2019-02-03T01:13:46.923 回答
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 回答
-1

斯威夫特 2.0

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