首页 > 解决方案 > 二元运算符'*'不能应用于'Float'和'Double'类型的操作数

问题描述

我正在实施AudioVisualizer,我正在尝试计算音频的时间,但我得到以下错误

二元运算符'*'不能应用于'Float'和'Double'类型的操作数

这是我的代码:

 var lowPassReslts: Double = 0.0
 var lowPassReslts1: Double = 0.0

 let ALPHA: Float = 1.05

 let averagePowerForChannel = pow(10, (0.05 * audioPlayer.averagePower(forChannel: 0)))
 lowPassReslts = ALPHA * averagePowerForChannel + (1.0 - ALPHA) * lowPassReslts //HERE i am getting error which i mention above

 let averagePowerForChannel1 = pow(10, (0.05 * audioPlayer.averagePower(forChannel: 1)))
 lowPassReslts1 = ALPHA * averagePowerForChannel1 + (1.0 - ALPHA) * lowPassReslts1 //HERE i am getting error

上面的代码 O 是从 Objective-C 转换而来的。此代码在 Objective-C 中完美运行,但在 Swift 中无法运行。谁能告诉我如何解决这个错误?

请看屏幕截图

标签: swiftdouble

解决方案


    var lowPassReslts: Double = 0.0
    var lowPassReslts1: Double = 0.0

    let ALPHA: Float = 1.05

    let averagePowerForChannel = pow(10, (0.05 * audioPlayer.averagePower(forChannel: 0)))
    lowPassReslts = Double(ALPHA * Float(averagePowerForChannel) + (1.0 - ALPHA) * Float(lowPassReslts))

    let averagePowerForChannel1 = pow(10, (0.05 * audioPlayer.averagePower(forChannel: 1)))
    lowPassReslts1 = Double(ALPHA * Float(averagePowerForChannel1) + (1.0 - ALPHA) * Float(lowPassReslts1))

推荐阅读