原帖由 yrgui 于 2008-8-20 12:07 发表
) b$ L; Z( q+ @0 P% |1 v% k请教一个lisp里面计算精度的问题; t8 |+ h9 S" X
如:
% \" V7 d* W$ Z5 a/ }' `5 R# q(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢?
* D5 L- @' w) b+ |8 u% _: g! K
# D& ^0 ~( d' x, R6 T3 H5 f
) l, L- A/ R$ N- w首先声明,只能同学相称,我算不得什么高手,也只是在学习中
8 Y! M4 [& I+ C8 ^9 g, S( k2 x% c% _6 x! y) u, L' [
看看下例,不知道满意吗? a* r& ~$ ]: U, E: [! h
(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))+ Z ~9 S' ? N6 B6 e: b
rtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位
" s! ], i) Q6 D% P! Tatof字串转实、整数,与4.5进行差值运算
7 U% V; Z0 k. Y2 e具体的可以再查相关函数解释 |