Почему компилятор Swift не может обработать простую формулу - PullRequest
0 голосов
/ 01 августа 2020

Что не так с кодом:

func realPriceForRequestedPrice(price: Int64, fee: Int32) -> Int64 {
    return Int64(100 * price * (1.0 - fee / 1000.0))
}

Компилятор говорит:

Компилятор не может проверить тип этого выражения в разумные сроки; попробуйте разбить выражение на отдельные подвыражения

Почему?

EDIT:

Это компилируется, поэтому я понимаю, что компилятору требуется явное приведение to Double:

func realPriceForRequestedPrice(price: Int64, fee: Int32) -> Int64 {
    return Int64(100.0 * Double(price) * (1.0 - Double(fee) / 1000.0))
}

Но я до сих пор не понимаю, почему там написано «Невозможно проверить ...» вместо «Невозможно умножить Double на Int64» или что-то подобное ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...