  Despite being raised as a problem over ten years ago, the imprecision of
floating point arithmetic continues to cause privacy failures in the
implementations of differentially private noise mechanisms. In this paper, we
highlight a new class of vulnerabilities, which we call \emph{precision-based
attacks}, and which affect several open source libraries. To address this
vulnerability and implement differentially private mechanisms on floating-point
space in a safe way, we propose a novel technique, called \emph{interval
refining}. This technique has minimal error, provable privacy, and broad
applicability. We use interval refining to design and implement a variant of
the Laplace mechanism that is equivalent to sampling from the Laplace
distribution and rounding to a float. We report on the performance of this
approach, and discuss how interval refining can be used to implement other
mechanisms safely, including the Gaussian mechanism and the exponential
mechanism.
