Is there a solution to the floating point issue?

I understand that certain numbers can't be represented as a floating point value, but is there another way to correct this if it affects my analysis?

> a<-6.959435821 
>
> sprintf("%5.25f", a)
[1] "6.9594358209999995779071469"