Мне нужна помощь с чем-то, что кажется простым, но смущает меня. Попытка написать некоторый метод нечеткого сопоставления, который справляется с различиями в формате между тем, какое значение вычисляется по мере необходимости, и тем, которое фактически доступно из списка выбора.
Значение (цена исполнения опциона )всегда является вычисляемым числом с плавающей запятой, например 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?