ну ты делаешь строгое равенство длф флоата, что уже плохо. чем (1.-step(1.0, i)) *(1. - i) + step(1.0, i) не угодил)?
надеюсь нигде не натупил, так можно: float result = 1.0 - i + trunc(i); Если i == 0.0 или i == 1.0, то вернет 1.0 иначе вернет результат 1.0 - i
Обсуждают сегодня