Вынес вычисление выражения в отдельную функцию.
Убрал явное приведение типа double к double )
Поменял способ обработки ошибок, ввел константу с кодом ошибки.
Вынес печать сообщения об ошибке в отдельную функицю.