ПРЕДЛАГАЮ 'I': организовать настройку разрядности (то есть, количества знаков после запятой) для каждого типа данных отдельно. Например, мои персональные настройки выглядели бы так, исходя из имеющихся основных типов данных: "Сумма", "Остаток", "Цена", "Количество", "Валюта". Для каждого типа данных нахожу достаточно аргументов, чтобы применять "свое" количество знаков после запятой. "Сумма" обычно 2 знака (этого достаточно для учета). "Остаток" - аналогично. "Цена" обычно от 2 до 4 знаков (4 - для дешевых позиций, которые могут продаваться упаковками, а могут и в розницу). "Количество" 0 знаков (по-моему, "цельных" товаров, услуг встречается больше). "Валюта" до 6 знаков (некоторые валюты банки оценивают за 100 или 1000 единиц и т.п.).
Предполагаю, что возможно и альтернативное решение этой же задачи, путем ограничения максимально допустимого числа разрядов. Вводимые в рабочие поля данные сохранять с таким количеством разрядов, сколько знаков после запятой было реально введено в это поле данных. При этом, оставшиеся до разрешенного максимума, "неиспользованные" разряды (обычно автозаполняемые "0"), не отображать. А для значений поля "Количество", использовать дополнительную настройку разрешающую применять в учете дробное количество.