【发布时间】:2013-04-21 16:38:11
【问题描述】:
我正在尝试使用一些 UI 按钮来影响 3D 模型的翻译,以将位置移动 0.1 或 -0.1。
我的模型位置是一个 3 维浮点数,因此简单地将 0.1f 添加到其中一个值会导致明显的舍入误差。虽然我可以使用 BigDecimal 之类的东西来保持精度,但我仍然必须将它从浮点数转换为最后的浮点数,这总是会导致愚蠢的数字,让我的 UI 看起来很乱。
我可以对显示的值进行美化,但舍入错误只会随着更多的编辑而变得更糟,而且它们会使我的保存文件难以阅读。
那么当我需要使用浮点数时,我该如何避免这些错误呢?
【问题讨论】:
-
多次加减.1f不会产生很大的错误。最明显的变化是一个单一的变化,例如当期望的结果是四但在转换为整数期间产生的结果稍微少一些并被截断为三。这将通过在转换前四舍五入来解决。如果您遇到其他错误,则可能是其他错误。请显示示例数据和代码来说明您遇到的问题。
-
最简单:增加/减少 0.125。
标签: java floating-point precision floating-accuracy floating-point-precision