原帖由 yrgui 于 2008-8-20 12:07 发表 
8 f2 g( X8 F' F" d请教一个lisp里面计算精度的问题7 a% J4 O1 m: o0 Z( V1 [
如:+ ~7 A7 {0 }; w1 I" A/ }& x, ]
(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢?
! A# w# C" l1 H8 H0 w
2 P0 e+ q \ `
: E8 a. @! R* N% i) r首先声明,只能同学相称,我算不得什么高手,也只是在学习中. g; a" M1 t5 ^$ {+ M! V
+ Z Z( H" i4 n) \$ B. e看看下例,不知道满意吗?
3 E4 \+ s4 c5 k U(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))
3 X: t8 A6 b5 n5 j: J; V- J, hrtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位
' t1 I2 K9 ]& \, C4 n0 datof字串转实、整数,与4.5进行差值运算2 Z* f4 ] Z0 C/ ^ ~* Y9 ?2 `7 i+ D
具体的可以再查相关函数解释 |