Как можно тримить значения числа с плавающей точкой
Как можно при вводе в 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));
}