原帖由 yrgui 于 2008-8-20 12:07 发表 , E" @# W3 N4 [7 L d2 Y( Y+ B G" g
请教一个lisp里面计算精度的问题
9 c- O9 \ O6 M: n4 b" y' u$ s如:
) K; ~, h4 {. T$ ]! Y y(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢?
6 Y. I0 m* [2 F; a/ v6 { }
; S9 R, v4 a9 a4 ]! K
# s9 r8 F1 Z6 Y; Y" b" Q首先声明,只能同学相称,我算不得什么高手,也只是在学习中; k% I J. _4 ]% M
1 T6 q$ X A. z看看下例,不知道满意吗?
3 c6 _+ M; e# J, _% ?(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))
. E& T' Z' {. Z' Yrtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位' Z' k4 Q S$ h8 `6 C* V
atof字串转实、整数,与4.5进行差值运算
- d9 T u# i2 d; ?具体的可以再查相关函数解释 |