Swift有内置的对数函数吗?

Zen*_*pia 13 math swift

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

dfr*_*fri 32

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

func log2(x: Double) -> Double
func log2f(x: Float) -> Float
Run Code Online (Sandbox Code Playgroud)

例如,在游乐场

print(log2(8.0)) // 3.0
Run Code Online (Sandbox Code Playgroud)

(编辑添加以下评论)

如果要计算基于自定义的日志功能,可以使用以下基数变化对数进行对数

在此输入图像描述

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

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

print(log3(9.0)) // "2.0"
Run Code Online (Sandbox Code Playgroud)

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

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"
Run Code Online (Sandbox Code Playgroud)

  • @Utopia 更新了我的答案以包含一般情况。 (2认同)