看代码
func test_int_div_zero(_ x: Int) -> Int {
let rt = 1 / x
return rt //1/0 = 崩溃
}
func test_positive_double_div_zero(_ x: Int) -> Double {
let rt = 1.0 / Double(x)
return rt //1.0/0 = inf,表示infinity,正无穷大
}
func test_negative_double_div_zero(_ x: Int) -> Double {
let rt = -1.0 / Double(x)
return rt //-1.0/0 = -inf,表示负无穷大
}
func test_zero_double_div_zero(_ x: Int) -> Double {
let rt = -0.0 / Double(x)
return rt //-0.0/0 或 -0/0 = nan,表示not a number
}
结论:
- 整数除以0会崩溃。
- 浮点数除以0不会崩溃。结果可能为inf,-inf,或nan。
但是为了程序的健壮性,除法操作,除数最好进行非法参数校验。