|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
eps是一个函数。当没有参数时默认参数是1.返回的是该参数的精度。5 m7 x, S+ c# A* l
也就是说单个的eps实际上是eps(1),表示的是1的精度。& H I3 m% B4 _8 {/ ]$ D8 v$ f M$ U& E
这里要说一下精度的概念。浮点数所能表示的数值范围是很大的,但是浮点数不是无限2 E( i, S5 g) v& s- S( X
的,连续的和稠密的;而是有限的,离散的和稀疏的,而且每个数的精度都不一样。越
; n3 v5 V: p. x, v Z是靠近0,精度越高,反之则越低。eps返回的是1的精度。指的是1和离他最近的浮点数
$ z Q& z) ~4 }+ J之间的距离。
~0 {$ [" s# J0 n% L7 x我们输入eps可以看到1的精度。
! @+ z$ s* P1 {
- Y% @+ ]) g9 ~6 `% U+ i5 e9 |也就是说离他最近的浮点数和他相差eps(1)。我们可以计算1+eps,他就是离1最近的浮
* q. i) U& y# n) K点数。 8 Y" I4 [" w( E- c& h
. \+ V; L2 l; G8 D
如果我们计算出的数介于这两者之间,系统就会自动把它舍入到离他最近的数。! s/ F4 r3 @! ]1 B
# ^1 @+ @) p+ l8 s* |
2 X0 O" D, F% K& w) U( w: U1+eps*3/5离1+eps近,所以1+eps*3/5≈1+eps;1+eps*2/5离1近,所以1+eps*2/5≈1,7 h- a8 G# K# t6 R9 N& N& {8 W3 _! Q
7 s( ?# b& I o7 I* K8 ]4 m& l; [# B
而1+eps/2在正当中,系统自动把它舍入到1,即1+eps/2≈1
! e* r9 ]: X8 q) C# z, u' s3 q0 @: W# g2 I
9 K2 t: `6 H7 o. R: E如果我们输入eps(2)可以看到2的精度,它只有1的精度的一半。即eps(2)=eps*2 ( \4 _- T" J) } N* [! C
7 a: ], [# G- c1 f: ~
因此系统会认为2+eps≈2,而2+eps*6/5≈2+eps*2=2+eps(2) 8 i) _) j) d, q
|
|