Java Float Precision,值介于0和1之间

sch*_*kah 2 java floating-point precision

我将0到1之间的值存储为浮点数.我知道可辨别的浮点数之间的差值越小,浮点数越接近0.因此,我认为在我的情况下精度非常高(因为最高浮点数为1 ..).在比较其中两个花车时,我需要考虑多大的ε?即1.0f与小于1.0f的最大可表示浮动之间的差距有多大?我很抱歉,如果这个问题看起来太广泛/一般但我找不到答案:-(谢谢

Bat*_*eba 7

您可以使用该功能java.lang.Math.nextAfter(float start, double direction)来帮助您.

在您的情况下,使用它来调用它nextAfter(1.0f, 0.0).在这里,我们将其设置direction为小于您的起始编号,因此它将"向后"搜索.结果float是你的答案.

因为这个功能还具有过载走doublestart,要小心使用1.0f来表示float文字.