Double Swift 3迁移-双扩展舍入问题
我正在将我们的代码库迁移到Swift 3,我遇到了一个无法解释或修复的编译问题 我有一个Double Swift 3迁移-双扩展舍入问题,double,rounding,swift3,xcode8,Double,Rounding,Swift3,Xcode8,我正在将我们的代码库迁移到Swift 3,我遇到了一个无法解释或修复的编译问题 我有一个Double扩展名中的方法,它将Double四舍五入到一定的位数: public func roundToPlaces(places: Int) -> Double { let divisor = pow(10.0, Double(places)) return round(self * divisor) / divisor } 例如: 12.34567.roundToPlaces(2
Double
扩展名中的方法,它将Double
四舍五入到一定的位数:
public func roundToPlaces(places: Int) -> Double {
let divisor = pow(10.0, Double(places))
return round(self * divisor) / divisor
}
例如:
12.34567.roundToPlaces(2)
应返回12.35
。然而,我在这个扩展中使用的round
方法中遇到了一个编译问题。这是说我不能在不可变值上使用mutating member:“self”是不可变的
你知道这里发生了什么吗?如何解决此问题?我已解决此问题。将舍入(自*除数)
更改为(自*除数)。舍入()解决了编译问题。不应舍入的可能重复12.34567
返回12.35
?我的错误…是的,12.35。现在编辑…我必须做:(self*除数).rounded()加括号