В Swift округление не происходит, как ожидалось - PullRequest
0 голосов
/ 11 декабря 2018

Вот строка кода, о которой идет речь:

let finalNumber = String(format: "%.2f", anotherNumber)
// where anotherNumber is a decimal like 123.456789

Вывод, который я получаю, составляет 123,45.Я ожидаю, что это будет округлено до 123,46.

Может кто-нибудь сказать мне, почему он не округляется правильно?

1 Ответ

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

Попробуйте следующую функцию на детской площадке

func roundToDecimal(_ fractionDigits: Int, value: Double) -> Double {
  let multiplier = pow(10, Double(fractionDigits))
  return Darwin.round(value * multiplier) / multiplier
}


roundToDecimal(2, value: 123.456789)

вы получите свой результат 123.46

...