Вероятно, проблема в приведении числа к Long, поскольку long - это просто тип, который содержит большие целые числа и не поддерживает десятичные дроби.
Возможно, перед выполнением CStr
попробуйте ввести числовое значение с одинарным или двойным типом валюты