|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
eps是一个函数。当没有参数时默认参数是1.返回的是该参数的精度。% g8 c/ D& d4 o% N
也就是说单个的eps实际上是eps(1),表示的是1的精度。8 }& m+ A4 w) @/ u7 l/ Z
这里要说一下精度的概念。浮点数所能表示的数值范围是很大的,但是浮点数不是无限8 I8 M3 ?! j( U2 N* x! w, O
的,连续的和稠密的;而是有限的,离散的和稀疏的,而且每个数的精度都不一样。越
* ~! h3 `3 I& L* y/ {% Q是靠近0,精度越高,反之则越低。eps返回的是1的精度。指的是1和离他最近的浮点数' b" ?: @+ Z: Q3 ]+ G& e' e+ d) X
之间的距离。
% u7 ?' P7 g' @5 ~1 p: j, ~我们输入eps可以看到1的精度。
. g( n. X& v8 D: L& y
7 x- a1 F' F* o1 a2 e也就是说离他最近的浮点数和他相差eps(1)。我们可以计算1+eps,他就是离1最近的浮
: Y- _4 Y1 ?% F3 R: u. a, N- }点数。
7 ?7 J7 @) x/ [& O5 M: {' D) ]4 a+ R2 n- O
如果我们计算出的数介于这两者之间,系统就会自动把它舍入到离他最近的数。# L e+ J4 @+ X- e
/ L4 O; |# J3 x8 Q* r* V( W
+ Y7 ~! K$ T4 D. @( T$ Q1+eps*3/5离1+eps近,所以1+eps*3/5≈1+eps;1+eps*2/5离1近,所以1+eps*2/5≈1,1 p+ u2 z4 G% n' G3 r/ ?
& L3 M. R4 ?, r5 f. V
* X4 L4 Z6 {; g" y- x+ e3 \% I而1+eps/2在正当中,系统自动把它舍入到1,即1+eps/2≈1
9 d% w+ ^' K0 G; s8 F4 V' S% R- L9 d" R: P6 c/ o& {- I7 T; ^; Z
( {5 @5 D [: N* \* W' n8 i如果我们输入eps(2)可以看到2的精度,它只有1的精度的一半。即eps(2)=eps*2
1 a4 m2 H) I* }* u6 a9 ]
+ y) {2 F2 J8 h' R) P- @& a因此系统会认为2+eps≈2,而2+eps*6/5≈2+eps*2=2+eps(2)
7 V& P% E* N$ W1 X. y; u |
|