原帖由 yrgui 于 2008-8-20 12:07 发表 
- {& n0 ]- n* T( S. L4 s5 N. C请教一个lisp里面计算精度的问题
1 X+ H/ Z9 Z% K2 x/ m如:
" \( g$ R, N' X(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢? - A6 H; Z( e$ Y- H
2 G' B# ]! l2 F u; ]
$ K* e+ j) ~0 t+ {) X/ U: o4 s3 M
首先声明,只能同学相称,我算不得什么高手,也只是在学习中
5 i `/ ? U5 t' y; z
, U! w( I6 u- z看看下例,不知道满意吗?
; z, d8 c6 `+ {& |9 I. Q(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))
3 e4 P& d* X% H3 J, |# ^8 i. S6 y: Drtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位
! \+ w- A, o ~9 u$ m5 jatof字串转实、整数,与4.5进行差值运算+ x: `$ x/ H6 ?
具体的可以再查相关函数解释 |