微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Swift:计算数字是整数还是双精度数

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

解决方法

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

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

用法:

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

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

,

编辑
您可以为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")
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。