169 похожих чатов

Есть диапазон от 1 до 500, и второй диапазон от

0 до 40. Есть возможность их как то сопоставить? Что бы 500=40, а 1=0. Только для каждого числа из первого диапазона.

19 ответов

15 просмотров

Ну ты сам напиши

Daniil-Eiri Автор вопроса
Danila Bakunov
Ну ты сам напиши

а какая логика? я чет туплю

Напиши, что этим добится хочешь, что с помощью этого хочешь сделать?

Daniil-Eiri Автор вопроса
Daniil-Eiri Автор вопроса
Vitalijs Lavrinovics
Напиши, что этим добится хочешь, что с помощью это...

да калькулятор делаю, коэффициент нужен. Но я вроде четко задачу обозначил, зачем цель расписывать

Daniil Eiri
да калькулятор делаю, коэффициент нужен. Но я врод...

В том то и дело что задача не особо четко написана, по моему.

function maprange(a){ return (a-1)*40/499; // 1-500 <-> 0-40 // 1+( 0-499 ) <--> 0-40 } function maprange_reverse(b){ return b*499/40+1; } console.log( maprange(500) ) // 40 console.log( maprange(1) ) // 0 console.log( maprange_reverse(0) ) // 1 console.log( maprange_reverse(40) ) // 50 console.log( maprange(250) ) // 19.95991983967936 console.log( maprange_reverse(20) ) // 250.5

Daniil-Eiri Автор вопроса
Daniil Eiri
Красиво, спасибо

а назачем это, если не секрет?)

Daniil-Eiri Автор вопроса
allpeg
а назачем это, если не секрет?)

калькулятор коммерческий, расчет цены, нужен конкретный коэффициент постепенно увеличивающийся в зависимости от диапазона, потом я его умножаю на число в цикле что бы в зависимости от сложности и объема работ правильно рассчитать цену, типо того

Daniil Eiri
калькулятор коммерческий, расчет цены, нужен конкр...

ох, прикольно. Но кстати если интересно, вроде есть функция общего вида, которая преобразовывает один диапазон в другой такая используется чтобы Math.random() превратить в функцию как в php mt_rand() где указывается два int'а

Daniil Eiri
калькулятор коммерческий, расчет цены, нужен конкр...

function rangemap(x,a,b,c,d){ return (x-a)*(d-c)/(b-a)+c; } rangemap(3,1,5,11,21) // 16 rangemap(250,1,500,0,40) // 19.95991983967936 rangemap(20,0,40,1,500) // 250.5во, написал и вспомнил как оно называется - оно называется lerp (linear interpolation) только там на вход даётся три значения доля (число от 0 до 1), начало и конец диапазона вот, вспомнил, загуглил, первый результат // https://suvitruf.ru/2019/03/13/4305/a-brief-introduction-to-lerp/ function lerp(start, end, t) { return start * (1 - t) + end * t; }почти то же самое, ток в моей функции по сути мы пересчитываем свой диапазон в 0-1 и уже по похожей формуле считаем

Daniil-Eiri Автор вопроса
allpeg
function rangemap(x,a,b,c,d){ return (x-a)*(d-...

круто, но я оказывается все правильно делал несколько раз. Оказалось что js числа воспринимал как строки, и я при сложении например 350 и 400 получал 350400, выяснил это когда начал выводить все переменные и искать ошибку. Перевел тип данных в числовые и все заработало))

Daniil Eiri
круто, но я оказывается все правильно делал нескол...

о да, сам много раз так попадал) ничего, скоро ещё у тебя будут в корзине значения вида 1234.30000000000000004 и 4321.19999999999999996

Daniil-Eiri Автор вопроса
allpeg
о да, сам много раз так попадал) ничего, скоро ещё...

для счета после запятой спер такую функцию function roundTwoDigits(x) { var k = (Math.round(x * 100)/ 100).toString(); k += (k.indexOf('.') == -1)? '.00' : '00'; var p = k.indexOf('.'), m = k.indexOf('-.'); var f = (p === 0 || m === 0)? '0.' : '.'; return k.substring(0, p) + f + k.substring(p+1, p+3); }

Daniil Eiri
для счета после запятой спер такую функцию functio...

надо было спереть вот эту function roundTwoDigits(x) { return (+x).toFixed(2); }

так у него функция тоже округляет

это чтобы обрезать. а при расчете денег надо именно округлять

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта