У меня есть список допустимых размеров для объекта пользовательского интерфейса на моем дисплее (значения, при которых фоновое изображение разбивается так, как я его хочу), и я хочу, чтобы высота каждого объекта была поочередно и округлена до следующего наивысшее значение в этом списке. Например, если список содержал 49
, 83
, 114
, 148
и 179
, и если бы я прошел в 1
я получил бы 49
, если я прошел в 30
я получил бы 49
, если я прошел в 50
я получаю 83
и т. Д. Очевидно, я собираюсь написать отдельный метод, чтобы вернуть один из допустимых размеров и вызвать его по каждому объекту по очереди.Округление поплавка до ближайшего значения в заранее определенном списке?
Я довольно новый программист, и я пытаюсь разработать эффективный способ сделать это. Моя идея состояла в том, чтобы запустить цикл while
, добавив его к значению, пока оно не станет равным одному из заданных значений, а затем вернет это заданное значение. Это должно сработать, потому что в нем нет десятичных знаков, но я сомневаюсь, насколько безопасен. Существует ли более эффективный подход, чем цикл? Я использую Objective-C для iPhone, если кто-то хочет предложить пример кода или объектов, которые я могу использовать.
бинарный поиск будет лучше, если ваш список был длинный, но принятый ответ хорош для короткий список. –