首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EPS在C中是什么意思?

EPS在C中是什么意思?
EN

Stack Overflow用户
提问于 2009-03-09 16:11:59
回答 7查看 28.4K关注 0票数 9

我有以下代码片段:

代码语言:javascript
运行
复制
if (ABS(p43.x)  < EPS && ABS(p43.y)  < EPS && ABS(p43.z)  < EPS) return(FALSE);

我正在尝试将其转换为C#。"EPS“是什么意思?

这段代码来自http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline3d/

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-03-09 16:14:29

这将是某种形式的epsilon来确定这个数字是否“小到微不足道”。在这种情况下,确切的值看起来就像是#defined。

票数 22
EN

Stack Overflow用户

发布于 2009-03-09 16:17:13

EPS是epsilon。“足够接近”的因素。

问题是“绝对值是否足够接近?”其中“足够接近”是某个较小的数字,通常类似于1.0E-3

根据算法如何收敛于答案,性能可能取决于EPS的大小。注意不要让EPS太小,因为你的过程可能会运行几个小时(或几个世纪),而不会产生一个真正有用的答案。

在这种情况下--没有循环--使用EPS,因为浮点数在乘法过程中积累了很小的误差。你不能简单地说

代码语言:javascript
运行
复制
a == b

让它在一般情况下是真的。所以我们总是说

代码语言:javascript
运行
复制
abs( a-b ) <= EPS
票数 9
EN

Stack Overflow用户

发布于 2009-03-09 16:21:07

我会说乔恩·斯基特是对的。通过查看该页面上的lisp代码,您将在计算中找到一个类似的引用,称为'nearzero‘,其定义如下:

代码语言:javascript
运行
复制
(setq nearzero 0.00001)

因此,我认为EPS是一个设置为0.00001的常量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/626924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档