yrgui 发表于 2008-8-20 12:07

请教lisp高手

请教一个lisp里面计算精度的问题
如:
(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢?

baller 发表于 2008-8-26 10:22

原帖由 yrgui 于 2008-8-20 12:07 发表 http://www.askcad.com/bbs/images/common/back.gif
请教一个lisp里面计算精度的问题
如:
(- 4.5 1.0e-6)结果显示还是4.5,检验(= (- 4.5 1.0e-6) 4.5)结果为 nil,这就是说其实已经减去了,如何让它报出精确的结果呢?


首先声明,只能同学相称,我算不得什么高手,也只是在学习中

看看下例,不知道满意吗?
(setq a (rtos (+ 1.0 (- 4.5 (atof (rtos 1.0e-06 2 14)))) 2 14))
rtos 实、整数转字串后面的2代表以小数表示,14代表精度取14位
atof字串转实、整数,与4.5进行差值运算
具体的可以再查相关函数解释

yrgui 发表于 2008-8-26 14:22

回复 #2 baller 的帖子

同学,多谢了
见笑啊,我把题目写成这样也是没办法,这个问题我等了好几天也没人帮我解决,所以----:$
你这个做法确实可以,不过我不理解为什么系统不直接报出来,这样岂不更好,你说会不会是有什么设置可以改变这种情况呢?

baller 发表于 2008-8-26 14:33

原帖由 yrgui 于 2008-8-26 14:22 发表 http://www.askcad.com/bbs/images/common/back.gif
同学,多谢了
见笑啊,我把题目写成这样也是没办法,这个问题我等了好几天也没人帮我解决,所以----:$
你这个做法确实可以,不过我不理解为什么系统不直接报出来,这样岂不更好,你说会不会是有什么设置可 ...

默认只回显五位,我暂时也没有找到是否有变量控制开关
页: [1]
查看完整版本: 请教lisp高手