原帖由 yrgui 于 2008-8-20 12:07 发表 
Y: Z6 a, H3 O' J请教一个lisp里面计算精度的问题# l; O0 x! I6 ?% \& Z
如:& d5 M& z0 I n/ D' o$ ` o
(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢?
1 V% k. ~$ v& D1 C6 E# O+ \
0 M0 s( y# A( z8 W8 F
0 |4 ?9 l) _- U5 c) r; [& R首先声明,只能同学相称,我算不得什么高手,也只是在学习中) |: \- m$ b! H# B# Q; B% n
0 u% y! l+ p' W# J* |7 h看看下例,不知道满意吗?: h0 f# o9 c' l$ j) R7 f1 H1 l* F
(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14)); m* K7 h$ B. X$ K
rtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位
, {5 o/ x- o/ [5 A Iatof字串转实、整数,与4.5进行差值运算
# {6 Z; S Z4 L/ }5 }! E具体的可以再查相关函数解释 |