蛋蛋蛋蛋 发表于 2013-9-24 13:42:24

新手求问

本帖最后由 蛋蛋蛋蛋 于 2013-9-24 13:59 编辑

小的刚入lisp。很多不是很会。今天做一个习题被难住了。
要求是:输入一个数,四舍五入小数点后两位。
我做了如下编写
(defun C:ABC()
   (setq a (getreal "请输入一个数"))
   (setq b (* a 100))
   (if (>= b 0)(fix (+ b 0.5))
               (fix (- b 0.5)))
   (setq c (/ b 100))
   (print c)
   (princ)
)

但是,比如说输入1.5433
出来的还是1.5433
求大神指教。

自贡黄明儒 发表于 2013-9-24 13:44:16

参考http://bbs.mjtd.com/thread-107567-1-1.html

蛋蛋蛋蛋 发表于 2013-9-24 13:46:07

自贡黄明儒 发表于 2013-9-24 13:44 static/image/common/back.gif
参考http://bbs.mjtd.com/thread-107567-1-1.html

完全看不懂 T^T 。。。。。

自贡黄明儒 发表于 2013-9-24 13:53:04

(defun HH:rtosr1 (RealNum n / DIMZIN1 SHORTREAL1)
(setq DimZin1 (getvar "DIMZIN"))
(setvar "DIMZIN" 0)
(setq ShortReal1 (rtos RealNum 2 n))
(setvar "DIMZIN" DimZin1)
ShortReal1
)

;;要求是:输入一个数,四舍五入小数点后两位。
(defun C:ABC (/ A)
(setq a (getreal "\n 请输入一个数"))
(read (HH:rtosr1 a 2))
)

自贡黄明儒 发表于 2013-9-24 14:01:22

(defun C:ABC (/ A)
(setq a (getreal "\n 请输入一个数:"))
(setq a (* a 100))
(setq a (fix a))
(/ a 100)
)
页: [1]
查看完整版本: 新手求问