Я бы порекомендовал использовать пользовательский элемент управления, который имеет два текстовых поля, одно для целой числовой части, одно для десятичной части. это выглядит как неэффективное решение, но если вашему программному обеспечению нужно работать на клиентах с другими региональными настройками, стандартный разделитель тысяч и разделитель десятичных чисел может вызвать проблемы в будущем. ограничение количества символов в текстовом поле с десятичной частью решит вашу проблему.
Я бы также порекомендовал jquery для маскированного текстового поля, которое намного элегантнее стандартных замаскированных элементов управления вводом asp.net.
http://digitalbush.com/projects/masked-input-plugin/