原帖由 yrgui 于 2008-8-20 12:07 发表
( L' D1 ]+ [% |* F! P请教一个lisp里面计算精度的问题
7 O! Q. L0 n, u* s如:# q; Z4 X" r% O( q& C: @
(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢?
7 ?, \2 P* N8 A+ H; U; M- q* i1 I* u+ N. c- _5 A
' D0 T# H2 j" Q$ t* O
首先声明,只能同学相称,我算不得什么高手,也只是在学习中
& T, d |$ K- @" \
. P9 H2 @9 F( i+ B- Q" I看看下例,不知道满意吗?
9 I0 M1 }" u. C$ Q! K(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))
) g! v8 N& y9 G* \$ U5 E: |rtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位
, D1 ~3 N4 V) B# Y1 Z& F9 N' D. zatof字串转实、整数,与4.5进行差值运算
. H1 Z% ^* p- P; l4 v具体的可以再查相关函数解释 |