当前位置: 首页 > 面试题库 >

当需要使用float时,如何真正避免浮点错误?

上官季
2023-03-14
问题内容

我正在尝试使用一些UI按钮将位置移动0.1或-0.1来影响3D模型的转换。

我的模型位置是一个三维浮点数,因此简单地向其中一个值添加0.1f会导致明显的舍入误差。虽然我可以使用BigDecimal之类的东西来保持精度,但我仍然必须将其从浮点数转换为最后的浮点数,并且它始终会产生愚蠢的数字,这使我的UI看起来一团糟。

我可以将显示的值设为漂亮,但是舍入错误只会随着更多的编辑而变得更糟,它们使我的保存文件变得很难阅读。

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


问题答案:

我会Rational上课。那里有很多东西-
这看起来应该可行。

一个显着的成本是将Rational渲染为a
float时,将分母减小为时一个成本gcd。我张贴的那一刻始终使分子和分母始终处于完全减小的状态,如果您总是加或减1/10,这应该是非常有效的。

此实现将值归一化(即具有一致的符号),但未归约。

您应该选择最适合您的用法的实现。



 类似资料:
  • 问题内容: 我试图写一个近似平方根的函数(我知道有数学模块……我想自己做),但我被浮点运算搞砸了。如何避免这种情况? 使用它会产生以下结果: 我意识到我可以使用,但是我希望能够做到这一点非常准确。我希望能够计算出6或7位数字。如果我四舍五入,那将是不可能的。我想了解如何在Python中正确处理浮点计算。 问题答案: 这实际上与Python无关- 使用硬件的二进制浮点算法,您会在任何语言中看到相同的

  • 以下是输出: 为什么我得到的是而不是?我知道这与浮点错误有关,但我无法把握为什么它正在发生,以及我应该做些什么来防止这种情况的发生(如果有办法的话)。有人能解释一下(或者给我指一个链接)会帮助我理解吗?欢迎任何输入。谢谢!

  • 问题内容: 当创建新表并与一个用户一起使用时,我通常只调用以下命令: 发出前两个命令后,我再也不需要使用该命令。用户可以登录并使用他们的数据库,并运行可以很好地连接到数据库的PHP脚本。但是,我看到几乎所有我看过的教程都使用了此命令。 什么时候真正需要该命令,什么时候不必要? 问题答案: 通过GRANT选项分配的特权不需要FLUSH PRIVILEGES才能生效-MySQL服务器将注意到这些更改并

  • 我写了以下代码,在打印了大约10个输出后,它会出错 前三个函数是正确的,在其他程序中工作良好。请不要对它们的结构敏感,我认为问题在于和选择一些不能满足条件的值。我可以添加一些行来告诉Python避免使用导致数学域错误的数字吗?如果是,我应该怎么做?我的意思是通过下导致负值的步骤? 是一个mtrix,是一个31个数字的列表。 输出为:

  • 我正在将oracle从10升级到12,对于这个特定的项目,我遇到了以下错误: 似乎它没有识别我在DataSource上添加的配置: 我们使用的是Java 8,我们对代码有这些依赖关系: 问题是它正在为另一个项目工作(与这个项目具有相同的结构,但由于某种原因它在这里不起作用) 是否有任何遗漏或我可以找到问题并解决问题的地方?

  • 问题内容: 现在,我正在尝试对汇编程序进行编码,但我不断收到此错误: 我目前有以下代码: 感谢帮助。 问题答案: 您通常使用默认值 如果key在字典中,则返回key的值,否则返回默认值。如果未提供default,则默认为None,因此此方法永远不会引发KeyError。 因此,当您使用循环时,将如下所示: 打印: 如果要显式检查键是否在字典中,则必须检查键是否在字典中(无索引!)。 例如: 但是该