原帖由 yrgui 于 2008-8-20 12:07 发表
' I& [8 e3 E. |* q# z4 l请教一个lisp里面计算精度的问题
# P! T3 ?0 z5 `. S% F% o如:! w7 D9 |( I* B- T/ D* a' |* y
(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢? 7 B% m, i. H; ?8 K' [) M
. @) x" O1 T. @: `/ P; A
' D( x& L6 t! O8 c$ m+ ]3 u1 j, V
首先声明,只能同学相称,我算不得什么高手,也只是在学习中# U( x- ?/ m5 I! c3 |- ^+ O. ?
0 ~/ o- F4 H3 L) c! ~% G
看看下例,不知道满意吗?
$ `) d, Y3 n4 y+ V" ^(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))
2 ~* d& z6 X+ \: W% C( g9 u" _+ Xrtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位
$ w2 b2 V$ `- s1 C* qatof字串转实、整数,与4.5进行差值运算) @1 O1 f) t- k( r# s
具体的可以再查相关函数解释 |