原帖由 yrgui 于 2008-8-20 12:07 发表 ) G0 f' G, Z% x& W% R1 V+ ^
请教一个lisp里面计算精度的问题( t& ^3 W, c5 k
如:1 ?) u. L7 `: t# S: m( Y
(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢?
# o4 o2 j3 d3 I) A. E
; p `/ K' z' L; C! @2 D9 H- d* U9 S2 Z3 ?$ v
首先声明,只能同学相称,我算不得什么高手,也只是在学习中8 _% X# F( k. j% v; y+ Y! z
+ O! t( c. y( Q3 }* ?7 @
看看下例,不知道满意吗?) H8 d* p2 k% |! h
(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))9 X! s+ @& }' j
rtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位
! M# q- t k4 Y( I' Fatof字串转实、整数,与4.5进行差值运算, ~( H% ^8 m. q; I: `
具体的可以再查相关函数解释 |