swift - 二元运算符'*'不能应用于'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 中无法运行。谁能告诉我如何解决这个错误?
解决方案
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))
推荐阅读
- sql - 输入第 214 行末尾的语法错误:o.MatchAdded DESC ^
- parsing - 如何修复 JavaCC/jjTree 错误“方法 jjMoveNfa_0(int, int) 的代码超出 65535 字节限制”
- azure - 我可以在 westeurope.cloudapp.azure.com 子域获取在 Azure VM 中运行的网站的 SSL 证书吗
- perl - 解压缩具有可变长度的未知序列化格式
- git - SSL证书问题:证书链中的自签名证书
- ruby-on-rails - 如何在 Ruby on Rails 中动态创建临时模型?
- salt-stack - 如何以特定用户身份运行执行模块?
- reactjs - 当我使用 switch 语句时,useEffect 仅在第一次渲染时触发
- ios - 可选类型的值必须解包为类型的值
- python-3.x - NOT NULL 约束失败:product_product.author_id