我想知道一种计算数字是整数还是双精度数,然后将其放入if-else语句中的方法。 有人知道怎么做吗?
答案 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")
}