Unfortunately, that is one of the consequences of collecting data for (continuous) variables in bins, intervals, or ranges, rather than the actual values. Planning ahead for data collection helps to avoid problems like this later on.
In point of fact, if people reported their age in years, the mean score would be biased down from the true value by 0.5 years on the average (since people tend to report their age as of their last birthday anniversary.
What you can do, given the situation is:
1. Report the median age as falling in whichever ordered category/range contains the (N+1)/2 case in your N-person data set
2. Assume (and this is a strong one!) that, within a category/range, the actual ages are uniformly distributed, then use the midpoint of that range as the value for each of the cases within the range. Will it be right? Almost certainly not. Will it yield an useful guess? Yes.
As an example: If one of your ranges was 18-25 years, and you had 38 cases in than range, then for purposes of estimating an overall mean, treat each of the 38 cases as if they had a true age of 21.5 years. Repeat this for all categories.