Я предположил, что если первое число после десятичной дроби равно 5 или больше, оно будет округлено в большую сторону
Здесь я вычисляю 5% от 31,5.
Проблема №1
Неважно, какая операция выполняется первой, но это действительно
console.log((31.5 * 5)/100) // 1.575
console.log(31.5 * (5/100)) // 1.5750000000000002
Проблема № 2
Когда я округляю его до 2 десятичных знаков, я не получаю то же самое
console.log(((31.5 * 5)/100).toFixed(2)) // 1.57
console.log((31.5 * (5/100)).toFixed(2)) // 1.58
Почему 1,575 не округляется до 1,58?