AFON // радиотехник affonya@mail.ru
← Все проекты JavaScript

Ближайший номинал E24

Подбор ближайшего стандартного номинала из ряда E24.

JS.39 · Радиотехника

Задача

По желаемому сопротивлению найти ближайший номинал E24.

Алгоритм

Для каждого значения ряда во всех декадах сравнивается логарифм отношения к желаемому.

Исходный код

⇩ Скачать 39-ryad-e24.js

// Ближайший номинал ряда E24
const E24 = [10,11,12,13,15,16,18,20,22,24,27,30,33,36,39,43,47,51,56,62,68,75,82,91];
function nearestE24(v) {
  let best = v, bd = Infinity;
  for (let d = -2; d <= 9; d++) for (const e of E24) {
    const val = e * 10 ** d, rd = Math.abs(Math.log(val / v));
    if (rd < bd) { bd = rd; best = val; }
  }
  return best;
}

console.log('4700 ->', nearestE24(4700));
console.log('3300 ->', nearestE24(3140));

Пояснения

Логарифмическая метрика корректнее абсолютной разности для номиналов разных порядков.

Смотрите также

Резистор по цвету