swift除以0问题

看代码

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
}

结论:

  1. 整数除以0会崩溃。
  2. 浮点数除以0不会崩溃。结果可能为inf,-inf,或nan。

但是为了程序的健壮性,除法操作,除数最好进行非法参数校验。

你可能感兴趣的:(swift除以0问题)