I know of two procedures to "fix" a correlation matrix which has negative eigenvalues as a result of rounding error. One is by Higham "Computing the nearest correlation matrix, a problem in finance", which is implemented in the R package nearPD. The other is by Rebonato and is published under the title "the most general method to create a valid correlation matrix".
I addition some people attempt to bypass the problem entirely by estimating the matrix using a shrinkage method that guarantees the result is positive definite. Among these is Ledoit and Wolf's "Improved Estimation of the Covariance Matrix of Stock Returns", with code available in Matlab, and related papers.