|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
eps是一个函数。当没有参数时默认参数是1.返回的是该参数的精度。6 x) s( l0 t% a% `& m5 W) K
也就是说单个的eps实际上是eps(1),表示的是1的精度。1 K9 {+ Q2 h3 H- D
这里要说一下精度的概念。浮点数所能表示的数值范围是很大的,但是浮点数不是无限. _: M, G& m! u2 L- Q
的,连续的和稠密的;而是有限的,离散的和稀疏的,而且每个数的精度都不一样。越
1 f* }8 X4 F3 c+ I2 H是靠近0,精度越高,反之则越低。eps返回的是1的精度。指的是1和离他最近的浮点数
: k, S2 o8 u' h8 h之间的距离。 0 d# p$ m& w& i4 P$ T* O, S' v7 e- E
我们输入eps可以看到1的精度。
3 H2 V6 {% [( b, Y- M9 v$ J. M! I0 l% {' z8 `
也就是说离他最近的浮点数和他相差eps(1)。我们可以计算1+eps,他就是离1最近的浮6 M8 i) z, C! [5 ^. C2 D
点数。
5 p1 E( F; A: E7 f3 w3 b
3 ?, m" q) I% l" f5 b0 m如果我们计算出的数介于这两者之间,系统就会自动把它舍入到离他最近的数。: N) n* L# x$ [9 W& M3 _
- p! `" K0 i) N8 V) J$ O1 |: ^1 a5 j8 u
1+eps*3/5离1+eps近,所以1+eps*3/5≈1+eps;1+eps*2/5离1近,所以1+eps*2/5≈1,
6 K- d4 ~- I M8 h+ \
8 f1 t9 A5 y, h, v7 A! |3 n' Y2 s2 @1 E B
而1+eps/2在正当中,系统自动把它舍入到1,即1+eps/2≈1
7 h- [! I: h- c8 N) t2 s; H5 W- H6 M; R6 H1 F. `+ Y& }
$ s4 W& y' E p% l
如果我们输入eps(2)可以看到2的精度,它只有1的精度的一半。即eps(2)=eps*2
! G' W+ C& N. Q% G( o
) ?8 L+ @/ Z1 J) A因此系统会认为2+eps≈2,而2+eps*6/5≈2+eps*2=2+eps(2)
5 S% \, u; y: T2 {9 v( @# ]4 ^ |
|