Для будущих читателей у меня возникла эта проблема, так как я хотел разобрать значение onChange
textField в число с плавающей запятой, чтобы, когда пользователь печатал, я мог обновить свою модель.
Проблема была сдесятичное место и значения, такие как 12.120
, будут анализироваться как 12.12
, поэтому пользователь никогда не сможет ввести значение, такое как 12.1201
.
. Я решил, что это нужно, чтобы проверить, если Значение STRING содержит десятичный знак, а затем разбивает строку на этот десятичный знак, а затем подсчитывает количество символов после этого места, а затем форматирует число с указанным количеством мест.
Для иллюстрации:
const hasDecimal = event.target.value.includes(".");
const decimalValue = (hasDecimal ? event.target.value.split(".") : [event.target.value, ""])[1];
const parsed = parseFloat(event.target.value).toFixed(decimalValue.length);
const value = isNaN(parsed) ? "" : parsed;
onEditValue(value);