лучше так, т.е. если при обычном заработаем больше, то его и выводим.
и вот это выдает длинное дробное число, которое потом умножается на исходный капитал и округляется в меньшую сторону, поэтому проверка не совпадает. startCapital *= (100 + percent / 12 * amountOfTime) / 100;
если раскрыть скобки, то всё работает startCapital *= 1 + percent / 12 * amountOfTime / 100;
видимо, это не одно и тоже
попробуйте в консоли
(100 + 7.2 / 12 * 18) / 100
и
1+ 7.2 / 12 * 18 / 100
результат будет разный
Ага, входящее значение разное, возвращаемое из функции (после Math.floor) - одинаковое. Не путайте человека. Это округление там для того и стоит.
Вбейте сами в консоль
Math.floor((100 + 7.2 / 12 * 18) / 100);
Math.floor(1 + 7.2 / 12 * 18 / 100);
Да просто когда идет такое вычисление значения на которое надо домножать *= надо быть осторожным и помнить про ограничения js. он не всегда точно считает.
Наверное, хорошо бы разобрать примеры, где js работает непредсказуемо - считает неточно, выдает странные значения при операциях с разными типами данных. Это разбирается на интенсиве, а вот насчёт курсов - не помню такого.
Может быть это было бы полезно, не сразу в самом начале, а потом - по завершении основных курсов, как особенности языка, чтобы никого не напугать. Или выдавать информацию порциями - по типу а вы знаете что…