First, use binary search to find answer.
Then, remove edges one-by-one if removing this edge will not destroy all remaining path with shortest length, until your graph is reduced to a single cycle.
Hence, you can use bisection to compute the actual optimum, not involving epsilon at all.