刚刚接触Lisp编程的小哥哥小姐姐们不知道如何把变量里面的数字变为字串符,或者把字串符转换成数字,或者数字四舍五入。下面贴出各个函数的使用和功能。 1、整型转换为字符串的函数 (itoa int) 例子 : (itoa -2021) 返回 “-2021” 说明:把整型常数、变量或表达式的值转换为字符串,注意参数必须是整数,函数返回值中不带"+"号。 2、字符串转换为整数的函数 (atoi 字符串) 例子 :(atof "55.9") 返回 55 ,(atof "1997") 返回 1997 说明:把字符串常数、变量或表达式转换为整数。该函数从头扫描字符串,把前面的整数取出作为函数值返回。如果字符串不是以数字打头,函数返回值为0 3、字符串转换为实数的函数 (atof 字符串) 例子 :(atof "197.1") 返回 197.1 ,(atof "6") 返回 6.0 说明:把字符串常数、变量或表达式转换为实数。 该函数从头扫描字符串,把前面的数取出作为函数值返回。如果字符串不是以数字打头,函数返回值为0.0。 4、整型转换为实型的函数 (float n) 例子 : (float 6) 返回 6.0 说明:把整型数据转换为实型。参数可以为整数或实数,函数返回值为实数。 5、实型转换为整型的函数 (fix n) 例子 : (fix 6) 返回 6 说明:把常数、变量、表达式的值取整。 6、整数和实数格式化函数 (rtos number [mode] [precision]) 解释说明: 此函数将依据所给定的 mode、precision、AutoCAD 的UNITMODE 系统变量及DIMZIN尺寸变量来返回一字符串以表示 number。mode 与precision是整型数, 表示所选择的线性单位模式和精确度。AutoCAD 中所提供的mode 值如下:
RTOS 模式(number) 编辑格式 1 科学记数 (Scientific) 2 十进制 (Decimal) 3 工程 (尺和十进位寸) (Engineering) 4 建筑 (尺和分数寸) (Architectural) 5 任意的分数单位 (Fractional) 把整数或实数按照指定的显示方式"mode"和精度"presicion"四舍五入转换为字符串。 例子: 例如, 我们设定 DIMZIN=0。则:
6、距离格式化函数 (distof string [mode]) 说明: 此函数会以angle 根据 mode 所指定的显示格式将string转换成实型数值。mode 参数所指定的单位必须是现存的格式。它的值必须是与 AutoCAD 的系统变量 LUNITS 所允许的值一致, 如下表所示。如果 mode 被省略, 则angtof 将使用 LUNITS 目前使用的值。
string 必须是一个 distof 可以依据指定 mode 来正确分析的字符串。它可以是一个与rtos返回值相同的格式, 或许是 AutoCAD 允许键盘键入的格式。如果传送 distof经过 rtos 所建立的字符串, 那么distof将保证返回一有效值。如果distof成功执行, 那么它将返回一实型数值。否则, 它将返回 nil。 把距离串按照指定的格式"mode"转换为实数。 7、角度格式化函数(弧度转为角度) (angtos angle [mode] [precision]) 说明:把以弧度为单位的角度按照指定的角度格式"mode"和精度"presicion"转换为字符串,角度值在[0,2π]之间。 (1)参数"angle"可以为整型或实型常数、变量或表达式。 例子: (angtos 0.785398 0 4) 返回 "45.0000” 8、角度格式化为弧度函数(角度转为弧度) (angtof string [units]) 说明:把格式化角度字符串转换为以弧度为单位的实数。 模式 编辑格式 0 十进位度 1 度/分/秒 2 百分级数 3 弧度 4 测量单位 例子: (angtof "45.0000") 返回 0.785398 (angtof "45.0000" 3) 返回 1.0177 9、单位换算函数 (cvunit value from-unit to-unit) 说明: 把数值由一种单位格式转换为另一种单位格式。 (1)参数"value"为要换算的数值或点表(二维或三维点),必须是整型或实型,不得为空。 例子: (cvunit 1 "minute" "second") 返回 60.0 10、任意数值转换字符串 (vl-princ-to-string 任意值) 说明:此函数可以将任意的数值转换成字符串,(alert "")这个弹窗只支持字符串。我们想要看到编程运行的结果,就可以使用这个函数加弹窗,弹窗来结果是什么,无论是表,还是字符串,还是数组,都会转为字符串。 例子 (alert (vl-princ-to-string 任意值))
11、(read string) 说明: 此函数将返回 string 的第一个表或原子。但 string 不可以包含空格, 除非是在表或字符串中 。read 会返回它的参数转换的相对应数据类型。 Lisp 四舍五入(没有直接的函数,可以自定义一个) 例子 (read (rtos 1.251 2 1));(read (rtos 小数 模式 保留位数)) 四舍五入 (read "97 3.2") 返回 97 (read "3.2300") 返回 3.23 (read "hello there") 返回 HELLO (read "(a b c)") 返回 (A B C)
|
|