保留小数位数(四舍五入)
本帖最后由 自贡黄明儒 于 2013-10-29 08:20 编辑;;162.1 [功能] 数值后续零清除
;|值为 0 到 3 时仅影响英尺-英寸标注:
DIMZIN
0 消除零英尺和零英寸
1 包含零英尺和零英寸
2 包含零英尺,消除零英寸
3 包含零英寸,消除零英尺
4 消除十进制标注中的前导零(例如,0.5000 变为 .5000)
8 消除十进制标注中的后续零(例如,12.5000 变为 12.5)
12 消除前导零和后续零(例如,0.5000 变为 .5)
|;
;;示例(HH:rtosr 2.500);"2.5"
(defun HH:rtosr (RealNum / DIMZIN1 SHORTREAL1)
(setq DimZin1 (getvar "DIMZIN"))
(setvar "DIMZIN" 8)
(setq ShortReal1 (rtos RealNum 2 8))
(setvar "DIMZIN" DimZin1)
ShortReal1
)
;;162.2 [功能] 保留小数位数(四舍五入)
;|(rtos 数 mode 小数位数)
mode
1Scientific
2Decimal
3Engineering (feet and decimal inches)
4Architectural (feet and fractional inches)
5Fractional
|;
;;示例1 保留一位小数,四舍五入(HH:rtosr1 2.555 1);"2.6"
;;示例2 取整数,四舍五入(read(HH:rtosr1 215.46 0)),返回215
;;示例3 十位数,四舍五入(* (read(HH:rtosr1 (/ 215.46 10) 0)) 10),返回220
;;示例4 保留一位小数,四舍五入(read(HH:rtosr1 215.46 1)),返回215.5
(defun HH:rtosr1 (RealNum n / DIMZIN1 SHORTREAL1)
(setq DimZin1 (getvar "DIMZIN"))
(setvar "DIMZIN" 0)
(setq ShortReal1 (rtos RealNum 2 n))
(setvar "DIMZIN" DimZin1)
ShortReal1
) 看来大家都会了。 第二个函数中,设置DimZin变量有什么意义呢? 看官方帮助是: 0 消除零英尺和零英寸。新手还是一头雾水,能否解释一下? 不错的函数,收藏。 非常感谢这个代码很有用 收藏学习 有用 感谢了 本帖最后由 zjsru_18_505 于 2023-11-14 16:12 编辑
_$ (HH:RTOSR1 9.415 2)
"9.41"
_$ (HH:RTOSR1 8.415 2)
"8.41"
_$ (HH:RTOSR1 7.415 2)
"7.42"
_$ (HH:RTOSR1 6.415 2)
"6.42"
结果不对。
页:
[1]