Готов код надали някой ще намери да ти даде.
Но нека да го разгледаме от математическа гледна точка.
1/2 глава лук ( примерно )
искаме да сготвим за 6 човека ( 6 порции )
Умножаваме по 1/2 по 6 и получаваме 6/2 - > след съкращаване получаваме 3 ( 3 грави лук)
Сега да го погледнм и за 3-ма човека. Нечетно число.
и получаваме 3/2 . знаем че 2/2 = 1 и 4/2 =2
следователно 3/2 е между 1 и 2 . Реално се получава 1.5
Да разгледаме случая и с 1/4 чаена чаша захар ( примерно )
1/4 по 6 ( човека ) 6/4 > отново , това е м/у 1 и 2 .
Пак се получава 1.5. Можем да го разгледаме като съкратим на 2 и числителя и знаменателя. и пак се свежда до горе описаният метод.Той не е интересен.
Ето и друг пример :
9/4 ( което е 2.25 : или иначе казано 2 чаши нещо си и 1/4 от другото )
Нека да извадим числителя толкова пъти знаменателя докато се получи той да по-малък. реално 2 завъртания
1 завъртане :
(9-4) / 4 и получаваме 5/4 ( 1 на ум )
все още 5 > 4
(5-4 ) /4 и получаваме 1/4 ( 2 на ум
числителя е по-малък от знаменателя и може да не се занимаваме с него повече.
Следовалтено имаме 2 1/4 чаши нещо.
Може и доста детски да звучи, съжелявам.Знаеш, не че искам да те обидя

))
Идеята , е че на теб не ти трябват числа с плаващи запетайки вътре, а дроби.
Лично аз немога да ти помогна ако става дума за JS .С PHP ще ти отнеме доста повече сървърен ресурс.Дали с цикъл да извършваш нещата или с целочислено деление( 9%4) .