Как можно тримить значения числа с плавающей точкой

Как можно при вводе в input значения 12.4567 и зная например что precision у нас 3 -> обрезать число 12.456? Проблема с моим кодом что если скопировать значение 12.4567 в input то пропускает полностью это число и не обрезает, а если вводить то всё норм работает.

const precision = 3;
const numbersAfterDecimal = value.split('.')[1];

if (numbersAfterDecimal && numbersAfterDecimal.length > precision) {
    const amount = value.slice(0, -1);
}

Ответы (2 шт):

Автор решения: Rynay

yourNumber.toFixed(precision) - Возвращает строку с округлением

yourNumber.toString().match(/^-?\d*(?:\.\d{0,precision})?/)[0] тоже вернет строку, но уже без округления

→ Ссылка
Автор решения: dmitriy

Получилось решить проблему через substr таким способом:

const precision = 3;
const numbersAfterDecimal = value.split('.')[1];
const positionDot = value.indexOf('.');

if (numbersAfterDecimal && numbersAfterDecimal.length) {
   const amount = value.substr(0, positionDot + (precision + 1));
}
→ Ссылка