明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4095|回复: 6

[提问] 如何让一次性输入的几个数字都保留小数点后3位

[复制链接]
发表于 2017-7-28 11:08:55 | 显示全部楼层 |阅读模式
file:///C:\Users\shizengxin\AppData\Roaming\Tencent\Users\379901776\QQ\WinTemp\RichOle\`}AH2BFH4XHQKG`}6YV8BAK.png

(setq txt (getstring "\n请输入平面标高值±0.000:""prompt"t))
    (if        (= txt "")
(setq txt"%%P0.000")
)
(setq txt (strcat txt "平面" ))
(command "text" "j" "c" "non" pt1 600 0 txt)
如果输入的数字是“3.22 3.2”这样的,如何让最后写出的字是“3.220,3.200”
这里的数字个数不确定,可能是两个,也可能是3个。。。想要的结果是不论多少数字,最后每个数字都是小数点后3位
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2017-7-28 11:23:38 | 显示全部楼层
第一,设置系统变量dimzin为0,并使用getreal输入。
第二,输出时使用rtos函数把需要保留位数的数字转换为文本。
发表于 2017-7-28 11:38:31 | 显示全部楼层
 楼主| 发表于 2017-7-28 12:30:04 | 显示全部楼层
因为输入的数字不是3.2这样的单个数,而是一次性输入几个数,需要的是最后返回的是每个数保留3位小数,比如一次性输入3.2 3.3 3.51这3个数,返回3.200 3.300 3.510

点评

先分割字符串  发表于 2017-7-28 12:43
 楼主| 发表于 2017-7-29 08:43:26 | 显示全部楼层
我的想法是先把这个3.2 3.22~3.51字符串转变成实型数,然后取出里面的每一个实型数,把它的精度改成小数点后三位,然后再合并到一起,不知这样行不行,有高手帮忙吗,
发表于 2017-7-29 13:38:05 | 显示全部楼层
ex.
(setq str "3.2 3.3 3.51")

(setq a (parse  str " "))
(setq b (mapcar 'atof a))
(foreach c b  (rtos c 2 3))
===>
(foreach x (mapcar 'atof (parse  str " ")) (rtos x 2 3))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 03:39 , Processed in 0.168387 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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