Swift:计算数字是整数还是双精度数

时间:2020-08-29 14:16:58

标签: swift

我想知道一种计算数字是整数还是双精度数,然后将其放入if-else语句中的方法。 有人知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

您可以编写自己的简单扩展名,例如:

extension FloatingPoint {
    var isInteger: Bool { rounded() == self }
}

用法:

2.0.isInteger // true
2.5.isInteger // false

请注意, Double.infinity.isInteger及其否定项均返回true,如亚历山大在评论中所提到的。

答案 1 :(得分:1)

编辑
您可以为Double编写扩展功能:

extension Double {
  func isInteger() -> Bool {
    return self == floor(self)
  }
}

原始答案
您可以通过四舍五入来验证数字是否相同:

func isInteger(nr: Double) -> Bool{
  return nr == floor(nr)
}

然后您可以像这样使用它:

if isInteger(3.5) {
  print("this is an integer")
}
相关问题