如何解决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 举报,一经查实,本站将立刻删除。