原帖由 yrgui 于 2008-8-20 12:07 发表 * W9 b2 I1 S6 f
请教一个lisp里面计算精度的问题
6 H c" I: W- L. B如:
3 a9 X/ u6 K4 C- s* b(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢? 5 G% }8 u- X! b/ o$ _: ~1 N
/ F9 j+ E. f% r9 |3 G$ t [* E& k- M! i& d% M, Z5 F" P- G" q' k& D
首先声明,只能同学相称,我算不得什么高手,也只是在学习中 p2 Q# `& I/ J
0 B0 q9 {! w, S% M; a8 s/ r6 b看看下例,不知道满意吗?
6 Q e) ~- `$ X( ?(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))
9 T* N+ t6 s8 m. i- _0 e9 F" \rtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位
6 x# K) t' ]$ Latof字串转实、整数,与4.5进行差值运算
8 s0 w/ L$ D0 f0 M- X& K! x! Y具体的可以再查相关函数解释 |