明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1524|回复: 5

如何求出十位以上的数?

[复制链接]
发表于 2009-2-8 22:18:00 | 显示全部楼层 |阅读模式
如何求出十位以上的数?比如9.32 = 0;17.2 = 10;21.3 = 20;115 = 110 ...等等
发表于 2009-2-8 23:04:00 | 显示全部楼层

Command: (* (fix (/ 115 10)) 10)
110

Command: (* (fix (/ 21.3 10)) 10)
20

Command: (* (fix (/ 17.2 10)) 10)
10

Command: (* (fix (/ 9.32 10)) 10)
0

 楼主| 发表于 2009-2-9 09:14:00 | 显示全部楼层
学习了~
发表于 2009-2-10 13:25:00 | 显示全部楼层

二楼的解释思路。先进行除10处理 然后再取整 乘10处理。同样也可以进行取5处理大于3取5 小于3取0

(defun c:qu5(x)

(setq y(/ x 5)

      x(rem x 5)

)

(if (> 3 x)(setq y (+ 1 y)))

(setq y (fix y))

(setq x (* 5 y))

以后要求对某数x进行处理时只要(qu5 x)就行了。

发表于 2012-4-16 16:02:32 | 显示全部楼层
问题是:如果本身已经是整的可以不加?如 150 已经整数了但他还+5
发表于 2012-4-17 03:12:23 来自手机 | 显示全部楼层
4楼误导人,曲解2楼意思。
先用对数函数log和取整函数fix求出要处理的数有多少位,再根据2楼的方法用十的几次幂处理。类似原理请参考我的LISP大挑战第一季
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-22 08:52 , Processed in 0.147266 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表