原帖由 yrgui 于 2008-8-20 12:07 发表 7 L# [( E& w5 Y$ }: z
请教一个lisp里面计算精度的问题5 k" k& v8 q$ g5 E- m) U
如:
4 V8 ?( t% |' u- t8 F(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢? 1 j$ l6 m' g& ^7 x: F. \! F9 a
+ b# d0 h* I% T0 H
' x8 ^& `5 s$ Q( d" M
首先声明,只能同学相称,我算不得什么高手,也只是在学习中
/ U: v+ h! H8 v$ Z; \( \- ?# P# y+ V+ \# a0 b$ R5 b' _6 D
看看下例,不知道满意吗?
. S. h. X' \: S$ `, k7 f' j4 w(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))
# d1 g0 t$ }! Vrtos 实、整数转字串 后面的2代表以小数表示,14代表精度取14位
+ }% Y# P1 i+ K* _, s6 c* T) L3 X1 satof字串转实、整数,与4.5进行差值运算
5 |* W9 X0 S, Q) m- U' _0 G具体的可以再查相关函数解释 |