Я переношу нашу кодовую базу в Swift 3, и я столкнулся с проблемой компиляции, которую я не могу объяснить или исправить.Swift 3 Migration - проблема с удлинением округления
У меня есть метод в 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
, используемого в этом расширении. Говорят, что я Cannot use mutating member on immutable value: 'self' is immutable
.
Любые идеи о том, что здесь происходит? Как исправить эту проблему?
Возможный дубликат [Xcode 8 Beta 4 Swift 3 - поведение «round» изменено] (http://stackoverflow.com/questions/38767635/xcode-8-beta-4-swift-3-round-behaviour-changed) –
Не следует округлять '12.34567' return' 12.35'? – Koen
моя ошибка ... да, 12.35. редактирование сейчас ... – Jake