问题标签 [epsilon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1336 浏览

c++ - 为什么我的双精度值可以包含低于机器 epsilon 的值?

我正在使用双精度求解一个方程,我得到了-7.07649e-17一个解,而不是0.

我同意它足够接近,我可以说它相等,但我读过 C++ 双精度类型的机器 epsilon2^-52大于我得到的值。

那么为什么我的值比机器 epsilon 差呢?为什么值不四舍五入为零?

这没什么大不了的,但是当我进行逻辑测试时,我的值似乎不为零......

0 投票
3 回答
193 浏览

python - 如何一次比较两个数字接近度的多个列表?

假设我有 4 个列表:

我如何 1) 比较列表,例如 A,BB,CC,DA,C 等等 2) 如果元素为 +/-0.2 则返回 true ?

我的想法是附加列表有一个 for 循环遍历所有。

但后来我被困住了,因为如果我这样做了

显然它不起作用。有没有办法在不重复的情况下遍历列表并同时进行比较?

提前致谢

0 投票
2 回答
2098 浏览

qt - 您将如何高精度比较从 Cpp 端发送到 QML 函数的浮点数和双精度数?

您如何比较从 Cpp 端发送到 QML 函数的浮点数和双精度数?

如果我想像下面提到的那样进行高精度比较here

我应该如何在 Qt QML 中做到这一点?

或者,它是否在 QML 中被转换为真实的并且不需要担心它?

0 投票
1 回答
683 浏览

c - 在 C 中比较双变量的最小 EPSILON?

在我的程序中,我将特定坐标放入列表中。但是,该算法有时会将相同的坐标两次放入列表中。为了避免这种情况,我通过将 EPSILON 值与列表中所有位置的 x 和 y 值的绝对差进行比较来执行标准方法:

我有几个问题:

1)这种比较两个粒子位置的实现是否正确?

2) 我可以选择多小的 EPSILON?(粒子可以彼此非常接近)

3)有没有更快/更健壮的实现来比较粒子的位置?

0 投票
2 回答
2223 浏览

java - 为什么 EPSILON 用于比较两个浮点数

我在谷歌上搜索如何查找一个数字y是否是这个链接的力量x并遇到这个链接

爪哇

常见的陷阱

这个解决方案是有问题的,因为我们开始使用双精度数,这意味着我们会受到精度错误的影响。这意味着,我们不应该==在比较双打时使用。那是因为 Math.log10(n) / Math.log10(3)可能是5.0000001或的结果4.9999999Math.log()通过使用函数而不是 可以观察到这种效果Math.log10()

为了解决这个问题,我们需要将结果与 epsilon.

爪哇

return (Math.log(n) / Math.log(3) + epsilon) % 1 <= 2 * epsilon;

那里我不明白return (Math.log(n) / Math.log(3) + epsilon) % 1 <= 2 * epsilon;

那条线是什么意思?

为什么EPSILON在比较浮点数时使用?

0 投票
1 回答
1913 浏览

c# - 为浮点比较选择 Epsilon 值

我的团队正在使用将货币值作为 C# 浮点加倍公开的财务软件。有时,我们需要比较这些值以查看它们是否等于零,或者是否低于特定限制。当我注意到这个逻辑中的意外行为时,我很快了解到浮点双精度中固有的舍入误差(例如 1.1 + 2.2 = 3.3000000000000003)。到目前为止,我主要使用 C# 小数来表示货币值。

我的团队决定使用 epsilon 值方法来解决这个问题。本质上,当您比较两个数字时,如果这两个数字之间的差小于 epsilon,则它们被认为是相等的。我们以与以下文章中所述类似的方式实施此方法: https ://www.codeproject.com/Articles/383871/Demystify-Csharp-floating-point-equality-and-relat

我们的挑战是为 epsilon 确定一个合适的值。我们的货币价值在小数点右侧最多可以有 3 位数字(比例 = 3)。这意味着我们可以使用的最大 epsilon 是 0.0001(任何更大的数字都会被忽略)。由于 epsilon 值应该很小,我们决定将其再移一位小数点到 0.00001(为了安全起见,您可以说)。C# double 的精度至少为 15 位,所以我相信如果小数点左侧的数字小于或等于 10 位(15 - 5 = 10,其中 5 是小数点右侧的位数)。使用 10 位数字,我们可以将值表示为数十亿,最高可达 9,999,999,999.999。我们可能有数亿的数字,但我们预计不会达到数十亿,所以这个限制应该足够了。

我选择这个 epsilon 值的理由是否正确?我找到了很多讨论这种方法的资源,但我找不到很多资源可以为选择 epsilon 提供指导。

0 投票
1 回答
327 浏览

r - 加减法后的浮点数小于等于比较

在一系列浮点算术运算之后,是否存在与浮点数进行小于等于比较的“最佳实践”?

我在 R 中有以下示例(尽管该问题适用于任何使用浮点的语言)。我有一个双倍x = 1,我在上面应用了一系列加法和减法。最后x应该是一个,但不是由于浮点运算(据我收集)。这是示例:

一个(天真的?)解决方案是在不等式的右侧添加一些任意小的正数,如下所示

这是“最佳实践”吗?如果是,是否有关于如何选择的指南 some_arbitrary_factor

我的具体问题是,我有时间段(t_0, t_1], (t_1, t_2], ...,需要找出给定观察x的时间段。在经历了一系列浮点算术运算后,x可能已经将边界设置为一个边界,这应该导致精确运算在哪里执行。t_it_i

0 投票
2 回答
581 浏览

java - 不一致的哈希码和等于java

经过研究,我仍然找不到针对我的问题的具体解决方案。我有一个使用 epsilon 的“近似等于”方法,而我的 hashCode 方法使用精确值。当我比较值时,这打破了 HashSet 的先决条件。

我找不到使 hasCode() 与我的 equals 方法一致的方法。

0 投票
1 回答
1452 浏览

epsilon - 为什么使用 epsilon 的平方根作为小数

这个问题可能与语言无关,但我看到这篇文章使用 R提到使用 epsilon 的平方根作为小数:

为什么有平方根^0.5?任何帮助表示赞赏。

0 投票
2 回答
2849 浏览

c++ - machine epsilon - C++ 中的 long double

我想计算机器 Epsilon,这是使用 C++ 的不同数据类型e给出的最小可能数:和.1 + e > 1floatdoublelong double

这是我的代码:

但我得到了这个奇怪的输出:

float和的值double是我所期望的,但是,我无法解释这种long double行为。

有人可以告诉我出了什么问题吗?