我想在没有导入模块的情况下在Swift中计算log(2)8
。我在文档中找不到任何功能。
答案 0 :(得分:31)
您可以使用Xcode Tools中的log2(:Double)
或log2f(:Float)
方法,例如导入UIKit
或Foundation
:
func log2(x: Double) -> Double
func log2f(x: Float) -> Float
,例如,在游乐场
print(log2(8.0)) // 3.0
(编辑另外w.r.t。您的评论如下)
如果要计算自定义基数日志函数,可以使用以下基数变化对数
因此,对于例如计算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"