| 剛剛接觸Lisp編程的小哥哥小姐姐們不知道如何把變量里面的數(shù)字變?yōu)樽执?,或者把字串符轉(zhuǎn)換成數(shù)字,或者數(shù)字四舍五入。下面貼出各個(gè)函數(shù)的使用和功能。 1、整型轉(zhuǎn)換為字符串的函數(shù) (itoa int) 例子 : (itoa -2021) 返回 “-2021” 說(shuō)明:把整型常數(shù)、變量或表達(dá)式的值轉(zhuǎn)換為字符串,注意參數(shù)必須是整數(shù),函數(shù)返回值中不帶"+"號(hào)。 2、字符串轉(zhuǎn)換為整數(shù)的函數(shù) (atoi 字符串) 例子 :(atof "55.9") 返回 55 ,(atof "1997") 返回 1997 說(shuō)明:把字符串常數(shù)、變量或表達(dá)式轉(zhuǎn)換為整數(shù)。該函數(shù)從頭掃描字符串,把前面的整數(shù)取出作為函數(shù)值返回。如果字符串不是以數(shù)字打頭,函數(shù)返回值為0 3、字符串轉(zhuǎn)換為實(shí)數(shù)的函數(shù) (atof 字符串) 例子 :(atof "197.1") 返回 197.1 ,(atof "6") 返回 6.0 說(shuō)明:把字符串常數(shù)、變量或表達(dá)式轉(zhuǎn)換為實(shí)數(shù)。 該函數(shù)從頭掃描字符串,把前面的數(shù)取出作為函數(shù)值返回。如果字符串不是以數(shù)字打頭,函數(shù)返回值為0.0。 4、整型轉(zhuǎn)換為實(shí)型的函數(shù) (float n) 例子 : (float 6) 返回 6.0 說(shuō)明:把整型數(shù)據(jù)轉(zhuǎn)換為實(shí)型。參數(shù)可以為整數(shù)或?qū)崝?shù),函數(shù)返回值為實(shí)數(shù)。 5、實(shí)型轉(zhuǎn)換為整型的函數(shù) (fix n) 例子 : (fix 6) 返回 6 說(shuō)明:把常數(shù)、變量、表達(dá)式的值取整。 6、整數(shù)和實(shí)數(shù)格式化函數(shù) (rtos number [mode] [precision]) 解釋說(shuō)明: 此函數(shù)將依據(jù)所給定的 mode、precision、AutoCAD 的UNITMODE 系統(tǒng)變量及DIMZIN尺寸變量來(lái)返回一字符串以表示 number。mode 與precision是整型數(shù), 表示所選擇的線性單位模式和精確度。AutoCAD 中所提供的mode 值如下: 
 RTOS 模式(number) 編輯格式 1 科學(xué)記數(shù) (Scientific) 2 十進(jìn)制 (Decimal) 3 工程 (尺和十進(jìn)位寸) (Engineering) 4 建筑 (尺和分?jǐn)?shù)寸) (Architectural) 5 任意的分?jǐn)?shù)單位 (Fractional) 把整數(shù)或?qū)崝?shù)按照指定的顯示方式"mode"和精度"presicion"四舍五入轉(zhuǎn)換為字符串。 例子: 例如, 我們?cè)O(shè)定 DIMZIN=0。則: 
 6、距離格式化函數(shù) (distof string [mode]) 說(shuō)明: 此函數(shù)會(huì)以angle 根據(jù) mode 所指定的顯示格式將string轉(zhuǎn)換成實(shí)型數(shù)值。mode 參數(shù)所指定的單位必須是現(xiàn)存的格式。它的值必須是與 AutoCAD 的系統(tǒng)變量 LUNITS 所允許的值一致, 如下表所示。如果 mode 被省略, 則angtof 將使用 LUNITS 目前使用的值。 
 string 必須是一個(gè) distof 可以依據(jù)指定 mode 來(lái)正確分析的字符串。它可以是一個(gè)與rtos返回值相同的格式, 或許是 AutoCAD 允許鍵盤(pán)鍵入的格式。如果傳送 distof經(jīng)過(guò) rtos 所建立的字符串, 那么distof將保證返回一有效值。如果distof成功執(zhí)行, 那么它將返回一實(shí)型數(shù)值。否則, 它將返回 nil。 把距離串按照指定的格式"mode"轉(zhuǎn)換為實(shí)數(shù)。 7、角度格式化函數(shù)(弧度轉(zhuǎn)為角度) (angtos angle [mode] [precision]) 說(shuō)明:把以弧度為單位的角度按照指定的角度格式"mode"和精度"presicion"轉(zhuǎn)換為字符串,角度值在[0,2π]之間。 (1)參數(shù)"angle"可以為整型或?qū)嵭统?shù)、變量或表達(dá)式。 例子: (angtos 0.785398 0 4) 返回 "45.0000” 8、角度格式化為弧度函數(shù)(角度轉(zhuǎn)為弧度) (angtof string [units]) 說(shuō)明:把格式化角度字符串轉(zhuǎn)換為以弧度為單位的實(shí)數(shù)。 模式 編輯格式 0 十進(jìn)位度 1 度/分/秒 2 百分級(jí)數(shù) 3 弧度 4 測(cè)量單位 例子: (angtof "45.0000") 返回 0.785398 (angtof "45.0000" 3) 返回 1.0177 9、單位換算函數(shù) (cvunit value from-unit to-unit) 說(shuō)明: 把數(shù)值由一種單位格式轉(zhuǎn)換為另一種單位格式。 (1)參數(shù)"value"為要換算的數(shù)值或點(diǎn)表(二維或三維點(diǎn)),必須是整型或?qū)嵭停坏脼榭铡?br>
(2)參數(shù)"from-unit"為"value" 原來(lái)使用的單位。"to-unit"為"value"將要使用的單位,這兩個(gè)單位必須在 ACAD.unt 文件中已經(jīng)定義。 例子: (cvunit 1 "minute" "second") 返回 60.0 10、任意數(shù)值轉(zhuǎn)換字符串 (vl-princ-to-string 任意值) 說(shuō)明:此函數(shù)可以將任意的數(shù)值轉(zhuǎn)換成字符串,(alert "")這個(gè)彈窗只支持字符串。我們想要看到編程運(yùn)行的結(jié)果,就可以使用這個(gè)函數(shù)加彈窗,彈窗來(lái)結(jié)果是什么,無(wú)論是表,還是字符串,還是數(shù)組,都會(huì)轉(zhuǎn)為字符串。 例子 (alert (vl-princ-to-string 任意值)) 
 11、(read string) 說(shuō)明: 此函數(shù)將返回 string 的第一個(gè)表或原子。但 string 不可以包含空格, 除非是在表或字符串中 。read 會(huì)返回它的參數(shù)轉(zhuǎn)換的相對(duì)應(yīng)數(shù)據(jù)類型。 Lisp 四舍五入(沒(méi)有直接的函數(shù),可以自定義一個(gè)) 例子 (read (rtos 1.251 2 1));(read (rtos 小數(shù) 模式 保留位數(shù))) 四舍五入 (read "97 3.2") 返回 97 (read "3.2300") 返回 3.23 (read "hello there") 返回 HELLO (read "(a b c)") 返回 (A B C) 
 | 
|  |