I have the following simple extension to Double
, which worked fine in everything up to Xcode 8 beta 3
public extension Double {
public func roundTo(_ decimalPlaces: Int) -> Double {
var v = self
var divisor = 1.0
if decimalPlaces > 0 {
for _ in 1 ... decimalPlaces {
v *= 10.0
divisor *= 0.1
}
}
return round(v) * divisor
}
}
As of Beta 4, I am getting "Cannot use mutating member on immutable value: 'self' is immutable" on the round
function in the return - has anyone got any clues?
This is due to a naming conflict with the new rounding functions on the
FloatingPoint
protocol,round()
androunded()
, which have been added to Swift 3 as of Xcode 8 beta 4.You therefore either need to disambiguate by specifying that you're referring to global
round()
function in theDarwin
module:Or, even better, simply make use of the new rounding functions and call
rounded()
onv
: