@b0rk This is one of those few places where I look at the problem domain and go "Okay, *this* is easier in Haskell." Because the real answer to the question of "How do you deal with the precision gap in floating point" is "Don't reduce precision until you have to," and lazy evaluation is *great* for that.
... that having been said, you don't need Haskell to implement lazy evaluation.