как найти наиболее подходящий элемент в массиве чисел?

Мне нужна помощь с чем-то, что кажется простым, но смущает меня. Попытка написать некоторый метод нечеткого сопоставления, который справляется с различиями в формате между тем, какое значение вычисляется по мере необходимости, и тем, которое фактически доступно из списка выбора.

Значение (цена исполнения опциона )всегда является вычисляемым числом с плавающей запятой, например 85.0или Int.

Массив содержит числа в строковой форме, непредсказуемые как в приращении, так и в том, будут ли они отображаться округленными до некоторого десятичного числа (, включая дополнительные нули, такие как5.50)или без десятичного числа (, например85), напр.:

select_list = ["77.5", "80", "82.5", "85", "87.5", "90", "95", "100", "105"]

Я не уверен, как написать простую строку или две кода, которые будут возвращать ближайший соответствующий элемент (по числовому значению ), как он появляется в массиве. Например,если select_list.contains? 85.0вернул"85"

На самом деле варианты выбора исходят от объекта Watir::Webdriver browser.select_list(:id, "lstStrike0_1")HTML, чей видимый текст (, а не значение HTML )являются этими числами; может быть, есть более прямой способ просто вызвать browser.select_list(:id, "lstStrike0_1").select Xбез необходимости выяснять в Watir, как преобразовать все эти варианты в массив Ruby?

13
задан Marcos 13 July 2012 в 19:11
поделиться