|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
eps是一个函数。当没有参数时默认参数是1.返回的是该参数的精度。
5 d" t) G4 C+ {# D0 r: D' l8 d& |也就是说单个的eps实际上是eps(1),表示的是1的精度。
' ^, ]9 R. z6 A, F9 j这里要说一下精度的概念。浮点数所能表示的数值范围是很大的,但是浮点数不是无限
% _* F* W0 j" b9 v0 f% h+ K1 A的,连续的和稠密的;而是有限的,离散的和稀疏的,而且每个数的精度都不一样。越
8 w3 r( K6 l; W6 O' L: Y是靠近0,精度越高,反之则越低。eps返回的是1的精度。指的是1和离他最近的浮点数
9 c8 |& v6 o( o之间的距离。
1 z% B7 ?& P. s8 X# C, O7 N" i8 K$ s- U我们输入eps可以看到1的精度。 # P- [5 H0 [3 g4 q' ?' N S
& H& L7 x0 `1 z$ l, v C, g也就是说离他最近的浮点数和他相差eps(1)。我们可以计算1+eps,他就是离1最近的浮
5 m: ]; j( d6 ~7 r2 \ P8 v7 u6 b o& b点数。
. r7 d; {6 v* g2 m3 j# s; R
' x6 N5 w3 C: L& B4 o+ P/ G如果我们计算出的数介于这两者之间,系统就会自动把它舍入到离他最近的数。- R+ n) @. K$ p- G9 n" _
1 e4 o% D: S- m$ i5 O( v
" p. e! v) o' p. d, s/ N; G# [8 S1+eps*3/5离1+eps近,所以1+eps*3/5≈1+eps;1+eps*2/5离1近,所以1+eps*2/5≈1,5 B8 q2 V- A% E" F" i' _& v
) e- U3 ~3 P8 L7 W! v* t1 V
1 [3 L0 j7 W5 x1 P, H' [而1+eps/2在正当中,系统自动把它舍入到1,即1+eps/2≈1 5 {7 n4 F! H8 }8 U
! h# P$ J/ Y# w6 @1 P' b) b! X) j, K8 E! R# G( _
如果我们输入eps(2)可以看到2的精度,它只有1的精度的一半。即eps(2)=eps*2 3 ?8 ]( a( P) Z, q/ t
. l0 P' e* D8 z& l! q因此系统会认为2+eps≈2,而2+eps*6/5≈2+eps*2=2+eps(2)
- y R9 G. w3 i3 l v% v8 [; x |
|