处理浮点错误的最佳方法是什么?

温妮·金

所以我有一个Javascript脚本,它将一个小部分加到一个循环中,并且可能会将0.2加到0.1。然后该值被馈送到另一个函数,但是问题是我需要精确地馈入0.3而不是0.30000000000000004。

确保数字正确无误的最简单方法是什么。请注意,将其加到0.25 + 0.125等到仅舍入到小数点后1位的可能性并不能解决问题。

也有可能添加0.2 + 0.10000000000000004,尽管这是非常非常不可能的!

乔治·巴希(George Bahij)

在通用浮点算法中,没有简单的方法可以避免舍入误差。该数字0.3没有确切的二进制浮点表示形式。

我建议阅读每位计算机科学家应该了解的有关浮点算法的知识,以熟悉数字浮点表示法固有的权衡取舍。

要真正解决您的问题,您应该问自己几个问题:

  • 您对精度的要求有多严格?为什么0.30000000000000004超出您的误差范围?四舍五入可以接受结果吗?
  • 有什么方法可以表示数字并使用整数执行大多数算术运算?例如,如果您知道只会遇到有理数,则可以使用整数商和整数分母来表示它们。从那里开始,您可以尝试尽可能长时间地推迟投射浮动,以防止累积舍入误差。
  • 如果无法对整数执行计算,是否可以使用其他数据类型,例如BigDecimal

最终,涉及浮点精度的问题时,通常必须根据特定问题提出的解决方案来定制解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

处理向量旋转期间的浮点错误

在 useMutation 钩子中处理错误的最佳方法是什么

在React Redux中处理提取错误的最佳方法是什么?

Elixir中错误处理的最佳方法是什么

在Combine中处理错误的最佳方法是什么?

在这里避免浮点计算错误的最佳方法是什么?

控制浮点错误

处理照片上传的最佳方法是什么?

处理ExecutionException的最佳方法是什么?

处理多个SKScenes的最佳方法是什么?

处理异常的最佳方法是什么?

如何轻松处理python中的浮点错误?

如何处理R中的浮点错误

从[]个字节中解析浮点值的最佳方法是什么?

在 Tensorflow 2.0 中无法将 dtype 对象的图像数据转换为浮点错误。这是什么原因造成的?

为什么小数和仍然存在浮点错误?

进行错误分组的最佳方法是什么?

返回结果或错误的最佳方法是什么

在C ++中重现“ cold / never_inline”错误处理技术的最佳方法是什么?

处理SonarQube错误“ javax.validation.constraints.NotNull”的最佳方法是什么?

在angular.js应用程序中全局进行错误处理的最佳方法是什么?

在vuejs中处理Http Exception错误消息的最佳方法是什么?

在 VBA 中处理属性内部数据输入错误的最佳方法是什么

处理CouchDB Map / Reduce JavaScript函数上的Eclipse错误的最佳方法是什么?

如何避免浮点错误?

奇怪的C ++浮点错误

python减少浮点错误

烧瓶错误处理的最佳实践是什么?

Spring Data JPA错误处理的最佳实践是什么