When parsing strings, I always prefer to use TryParse to throw exceptions for invalid strings:
string str = "(USD 92.90)"; decimal result; if (Decimal.TryParse(str, out result)) {
And, as others have said, first use a regular expression to extract only the numeric part.
source share