编程语言
首页 > 编程语言> > java – 如何在需要使用float时实际避免浮点错误?

java – 如何在需要使用float时实际避免浮点错误?

作者:互联网

我试图使用一些UI按钮来影响3D模型的转换,以将位置移动0.1或-0.1.

我的模型位置是一个三维浮点数,因此只需将0.1f添加到其中一个值就会导致明显的舍入误差.虽然我可以使用像BigDecimal这样的东西来保持精度,但我仍然必须将它从浮点数转换回到最后的浮点数,它总是会导致愚蠢的数字使我的UI看起来像一团糟.

我可以很好地显示显示的值,但是舍入错误只会随着更多编辑而变得更糟,并且它们使我的保存文件难以阅读.

那么当我需要使用浮点数时,如何才能真正避免这些错误呢?

解决方法:

我会使用Rational类.那里有很多 – this one看起来应该有用.

一个重要的成本是当Rational被渲染成浮点数时,以及当分母被缩减为gcd时.我发布的那个保持分子和分母始终处于完全缩小的状态,如果你总是增加或减去1/10,这应该是非常有效的.

This实现保持值标准化(即具有一致的符号)但未减少.

您应该选择最适合您使用的实施方案.

标签:java,floating-point,floating-accuracy,precision,floating-point-precision
来源: https://codeday.me/bug/20190703/1370199.html