Вопрос 1
В моем коде мне нужно проверить, попадает ли число (Double
или Int
) в определенный диапазон вокруг числа (с указанным допуском).
Например, центральный номер 15, допуск 5, поэтому диапазон: 10-20
.
13, 18, 19 все попадают в диапазон.
В настоящее время я проверяю это следующим образом:
if (15 - unit)...(15 + unit) ~= accentedMinute {
accentedMinute = 15
} else if (30 - unit)...(30 + unit) ~= accentedMinute {
accentedMinute = 30
} else {
accentedMinute = 45
}
Мне интересно использовать более простой подход для решения этой проблемы, например:
if Range(center: 15, tolerance: unit) ~= accentedMinute {
accentedMinute = 15
} else if Range(center: 30, tolerance: unit) ~= accentedMinute {
...
Вопрос 2
Возможно, этот метод можно было бы еще более упростить, конечная цель - «привязать» число к некоторому ближайшему числу в диапазоне.
Например,набор чисел для привязки будет 0, 15, 30, 45, 60 (snaps to 0)
Если задано число 13
, оно должно привязаться к 15
и т. д.