作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以向我解释以下输出。我知道它与浮点精度有关,但大小的顺序(差异 1e308)让我感到惊讶。
0:高精度
> 1e-324==0
[1] TRUE
> 1e-323==0
[1] FALSE
> 1 - 1e-16 == 1
[1] FALSE
> 1 - 1e-17 == 1
[1] TRUE
最佳答案
R 使用 IEEE 754 double 浮点数。
浮点数在零附近更密集。这是因为它们被设计为在很宽的范围内进行准确计算(如您所见,相当于大约 16 位有效十进制数字)。
也许您期望具有统一绝对精度的定点系统。在实践中,不动点要么是浪费的,要么必须事先仔细估计每个中间计算的范围,如果它们是错误的,后果将很严重。
正浮点数看起来像这样,示意性地:
+-+-+-+--+--+--+----+----+----+--------+--------+- -------+---
0
最小的正正规 double 数是 2 的最小指数次方。接近一, double 浮点数已经分散得很远。从一到它下面的数字有2-53的距离,从一到它上面的数字有2-52的距离。
关于r - R 中浮点精度的极端数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24847918/
SELECT DISTINCT `A/C#` AS `A/C#`, `MyRef` AS `MyRef`, DATEDIFF('2017-06-30', `Date`) AS
我是一名优秀的程序员,十分优秀!