只需一步,快速开始
请问如何判断一个数的小数部分的位数?
如:1.123 时,返回3。
1.0时,返回1。
1时,返回0。
使用道具 举报
lazybug 发表于 2006-7-28 16:32 (defun c:test (/ a tt n) (setq a 1.0) (setq tt (vl-prin1-to-stri ...
无法判断。如果只判断尾数,则1.0与1相同,当1是整数时,可以用判断数据类型的方法直接返回0。
vl-prin1-to-string
先转换成字符串再处理
不过对于1.00、1.1230之类返回的值还是“1.0”、“1.123”
如果是:"1.123 时,返回3。
"1.0" 时,返回1。
"1" 时,返回0。即成
大家请看这样是否可以:
1)先把实数转化成字符串这是一定的(seq b(rtos a 2 16))
2)判断小数点的位置:(setq c (vl-string-position (ascii ".") b))
3)截掉整数部分:(setq d (substr b 1 (1+ c)))
4取剩余部分的长度,(setq n (strlen d))
50,ok!
完整的程序就不写了
我认为,(setq a 1.25)跟(setq a 1.250)是等价的
应该是区分不开的
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-4-23 10:57 , Processed in 0.193676 second(s), 27 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.