При округлении swift double отображаются разные числа - PullRequest
0 голосов
/ 14 декабря 2018

Когда я получил два числа, например, 5,085 и 70,085.Мой код округляет первое число до 5,09, а второе - до 70,08.Почему-то при let aux1 = aux * 100 значение переходит в 7008.49999999.У кого-нибудь есть решение?

Вот мой код:

        let aux = Double(value)!
        let aux1 = aux * 100
        let aux2 = (aux1).rounded()
        let number = aux2 / 100
        return formatter.string(from: NSNumber(value: number))!

1 Ответ

0 голосов
/ 14 декабря 2018

Если вы хотите отформатировать дубль, округлив его дробные цифры.Попробуйте не:

Во-первых, реализуйте этот метод

    func formatDouble(_ double: Double, withFractionDigits digits: Int) -> String{
            let formatter = NumberFormatter()
            formatter.maximumFractionDigits = digits
            let string = formatter.string(from: (NSNumber(floatLiteral: double)))!
            return string

/*if you want a Double instead of a String, change the return value and uncomment the bellow lines*/
            //let number = formatter.number(from: string)!

            //return number.doubleValue
        }

после, вы можете назвать не так

let roundedNumber = formatDouble(Double(value)!, withFractionDigits: 2)
...