AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

[已解決]請問要如何將小數點後...進位到.00第二位??

上一篇主題 下一篇主題 向下

[已解決]請問要如何將小數點後...進位到.00第二位??

發表 由 bog0327 于 2012-04-07, 17:12

(setq k1 (getreal "\n 請輸入展開係數:"))
(command "lengthen" arc1"")
(setq dd (getvar "perimeter"))
(setq dd_1 (* dd (+ 1 k1)))
(setq dd_2 (rtos dd_1 2 2));這行是要改成二位數
(setq pt1 (cdr rr_cen))
(setq pt2 (polar pt1 0 rr))
(setq pt3 (polar pt2 (/ pi -2) dd_2))
(setq pt4 (polar pt3 0 t))
(command "RECTANGLE" pt2 pt4 )


可是在執行程式時有錯誤!!變成下面這樣!! 三條線

請輸入展開係數:0.42
目前的長度: 0.9425,夾角: 180; 錯誤: 損壞的引數類型: numberp: "1.34"

請好心的大大可以糾正我嗎??抱著書頭尖尖啊!! 頭暈目眩


bog0327 在 2012-04-08, 13:44 作了第 2 次修改
avatar
bog0327
一般會員
一般會員

文章總數 : 22
年齡 : 34
來自 : 台北
職業 : ACAD
愛好 : 看電影&漫畫
個性 : 好奇心很重的豬
使用年資 : 5
使用版本 : 2008
經驗值 : 2622
威望值 : 1
注冊日期 : 2010-09-05
經典問與答讀者 女 巨蟹座 豬

回頂端 向下

回復: [已解決]請問要如何將小數點後...進位到.00第二位??

發表 由 835 于 2012-04-08, 05:45

函數 rtos 執行後,得到的值是字串,
應該再將其轉成實數才能符合你的需求....

因此將 (setq dd_2 (rtos dd_1 2 2));這行是要改成二位數
改寫成 (setq dd_2 (atof (rtos dd_1 2 2)))應該就能執行了

這是我用來對數值作四捨五入的笨方法,
你參考看看,
如果其他先進有更好的做法,
亦請不吝分享,謝謝!

Tiger&蘋果爸 寫到:讚啦!! 謝謝熱心回覆~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
avatar
835
初級會員
初級會員

文章總數 : 34
年齡 : 38
來自 : 台中
職業 : 工程
愛好 : 打球
個性 : 沈靜
使用年資 : 6
使用版本 : 2008
積分 : 2
經驗值 : 2272
威望值 : 56
注冊日期 : 2012-01-02
藍鵲272號
男 處女座 馬

回頂端 向下

回復: [已解決]請問要如何將小數點後...進位到.00第二位??

發表 由 bog0327 于 2012-04-08, 10:35

謝謝835大大解惑!!
感謝您的幫忙!!
目前看書寫LISP一些指令還沒跟它們很熟!! 愛哭
有時候得到的是數值還是字串還不是很清楚!!
希望它們能跟我熟一點.... 害羞
avatar
bog0327
一般會員
一般會員

文章總數 : 22
年齡 : 34
來自 : 台北
職業 : ACAD
愛好 : 看電影&漫畫
個性 : 好奇心很重的豬
使用年資 : 5
使用版本 : 2008
經驗值 : 2622
威望值 : 1
注冊日期 : 2010-09-05
經典問與答讀者 女 巨蟹座 豬

回頂端 向下

回復: [已解決]請問要如何將小數點後...進位到.00第二位??

發表 由 835 于 2012-04-09, 02:23

bog0327 寫到:謝謝835大大解惑!!
感謝您的幫忙!!

不客氣~
只是剛好也曾為這個問題傷過腦筋罷了...
很高興能替你解決困擾, 好開心

也希望能有更多同好投入lisp的討論,
讓彼此的lisp功力能日益精進!
avatar
835
初級會員
初級會員

文章總數 : 34
年齡 : 38
來自 : 台中
職業 : 工程
愛好 : 打球
個性 : 沈靜
使用年資 : 6
使用版本 : 2008
積分 : 2
經驗值 : 2272
威望值 : 56
注冊日期 : 2012-01-02
藍鵲272號
男 處女座 馬

回頂端 向下

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章