Проверка входных данных и преобразование должны выполняться на уровне пользовательского интерфейса.
Мало того, что ваш бизнес-уровень имеет дело с типизированными данными, но и для того, чтобы вы могли легко выдавать сообщения об ошибках пользовательского интерфейса, если они вводят неправильный тип или если значение выходит за пределы вашего диапазона *.
* Некоторые фреймворки имеют собственную логику проверки для такого рода вещей ... ASP.NET - первое, о чем я могу подумать.