在Java中,如何将浮点数的有效位截断为任意精度?
我想在比较两个数字时引入一些人为的精度损失,以消除较小的舍入误差,这样我就不必在涉及x和y的每次比较中使用Math.absx-y在Java中,如何将浮点数的有效位截断为任意精度?,java,floating-point,precision,ieee-754,Java,Floating Point,Precision,Ieee 754,我想在比较两个数字时引入一些人为的精度损失,以消除较小的舍入误差,这样我就不必在涉及x和y的每次比较中使用Math.absx-y
当位足够大且x的数量级足够接近0时,则x*1L a这不会“平滑”舍入误差;它使它们更大。这不是处理浮点运算中舍入错误的好方法。b将浮点数四舍五入到有效位中特定位数的方法是已知的。我们最近遇到了一个问题,对此我已经指出。我同意,降低精度总是会导致更大的误差。更好地描述这个目标应该是指定浮点数的任意二进制离散化。我现在确实看到这个问题是一个相当常见的问题的重复。我需要在谷歌fu上工作。