Swift有内置的对数函数吗?

时间:2016-03-09 08:35:23

标签: swift math

我想在没有导入模块的情况下在Swift中计算log(2)8。我在文档中找不到任何功能。

1 个答案:

答案 0 :(得分:31)

您可以使用Xcode Tools中的log2(:Double)log2f(:Float)方法,例如导入UIKitFoundation

func log2(x: Double) -> Double
func log2f(x: Float) -> Float

,例如,在游乐场

print(log2(8.0)) // 3.0

(编辑另外w.r.t。您的评论如下)

如果要计算自定义基数日志函数,可以使用以下基数变化对数

enter image description here

因此,对于例如计算log3,您可以编写以下函数

func log3(val: Double) -> Double {
    return log(val)/log(3.0)
}

print(log3(9.0)) // "2.0"

或者,只是一个基于自定义的日志功能:

func logC(val: Double, forBase base: Double) -> Double {
    return log(val)/log(base)
}

print(logC(9.0, forBase: 3.0)) // "2.0"
print(logC(16.0, forBase: 4.0)) // "2.0"