[已解決]請問在實數轉字串rtos如何設定四捨五入 或是無條件捨去進入
3 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
[已解決]請問在實數轉字串rtos如何設定四捨五入 或是無條件捨去進入
(setq p1 (getpoint "請輸入左下角點:"))
(setq aa 3.82)
(setq bb 2.2)
(setq cc (* aa bb))
(setq txt (strcat "cc=" (rtos aa 2 2) "*" (rtos bb 2 2) "=" (rtos cc 2 2)))
(command "text" "bc" p1 2.5 0 txt)
若是我要無條件進位 或是無條件捨去 四捨五入
有哪邊需要修改
請各位大大指導
(setq aa 3.82)
(setq bb 2.2)
(setq cc (* aa bb))
(setq txt (strcat "cc=" (rtos aa 2 2) "*" (rtos bb 2 2) "=" (rtos cc 2 2)))
(command "text" "bc" p1 2.5 0 txt)
若是我要無條件進位 或是無條件捨去 四捨五入
有哪邊需要修改
請各位大大指導
swcforest 在 2009-11-05, 09:15 作了第 1 次修改
swcforest- 初級會員
- 文章總數 : 113
年齡 : 45
來自 : 台中市南區
職業 : 土木工程設計
愛好 : 遊山玩水及AutoLISP
個性 : 開朗活潑
使用年資 : 六七年了
使用版本 : AutoCAD 2016
積分 : 1
經驗值 : 6244
威望值 : 10
注冊日期 : 2008-07-27
回復: [已解決]請問在實數轉字串rtos如何設定四捨五入 或是無條件捨去進入
以下這兩行改為如下所示:
(setq aa (fix 3.82))
(setq bb (fix 2.2))
或是改為如下方這行也可以
(setq txt (strcat "cc=" (rtos (fix aa) 2 2) "*" (rtos (fix bb) 2 2) "=" (rtos (fix cc) 2 2)))
fix這個函數功用就是將實數無條件捨入為整數。
另外補充兩個部份
(setq aa (+ (fix 3.82) 1));此寫法為強制進位。
(setq aa (rtos 3.84 2 1));此寫法為四捨五入。
(setq aa (fix 3.82))
(setq bb (fix 2.2))
或是改為如下方這行也可以
(setq txt (strcat "cc=" (rtos (fix aa) 2 2) "*" (rtos (fix bb) 2 2) "=" (rtos (fix cc) 2 2)))
fix這個函數功用就是將實數無條件捨入為整數。
另外補充兩個部份
(setq aa (+ (fix 3.82) 1));此寫法為強制進位。
(setq aa (rtos 3.84 2 1));此寫法為四捨五入。
張譽璋- 榮譽顧問
- 文章總數 : 304
年齡 : 54
來自 : 彰化縣員林鎮
職業 : 機械設計工程師/AutoCAD講師/AutoCAD外掛系統開發/AutoCAD書籍作者
愛好 : 旅行及電影
個性 : 風趣健談
使用年資 : 25年
使用版本 : AutoCAD2010/2011/2012/2013
積分 : 20
經驗值 : 7521
威望值 : 641
發帖精華 : 2
回帖精華 : 1
注冊日期 : 2008-05-28
回復: [已解決]請問在實數轉字串rtos如何設定四捨五入 或是無條件捨去進入
不好意思 我表達的不清楚
因為一般我的工作是以土木工程為主
在繪圖時 的單位為公尺
因此我在表示的時候通常都在
小數點以下兩位 來代表
大大所提供的方法是以整數為主
我想要的結果是
3.826 => 3.82(無條件捨去) or 3.83(四捨五入及無條件進位)
再請大大指導一下
因為一般我的工作是以土木工程為主
在繪圖時 的單位為公尺
因此我在表示的時候通常都在
小數點以下兩位 來代表
大大所提供的方法是以整數為主
我想要的結果是
3.826 => 3.82(無條件捨去) or 3.83(四捨五入及無條件進位)
再請大大指導一下
swcforest- 初級會員
- 文章總數 : 113
年齡 : 45
來自 : 台中市南區
職業 : 土木工程設計
愛好 : 遊山玩水及AutoLISP
個性 : 開朗活潑
使用年資 : 六七年了
使用版本 : AutoCAD 2016
積分 : 1
經驗值 : 6244
威望值 : 10
注冊日期 : 2008-07-27
回復: [已解決]請問在實數轉字串rtos如何設定四捨五入 或是無條件捨去進入
(rtos 3.826 2 2);四捨五入
(substr (rtos 3.826 2 3) 1 4);強制捨去
但是這樣的寫法是固定值時行的通,如果採隨機輸入時,程式會變的更複雜,就不可以採用此方式。
你可以試試下列程式範例:
(substr (rtos 3.826 2 3) 1 4);強制捨去
但是這樣的寫法是固定值時行的通,如果採隨機輸入時,程式會變的更複雜,就不可以採用此方式。
你可以試試下列程式範例:
- 代碼:
(defun c:tst (/ p1 aa bb cc nn tx)
(setq p1 (getpoint "\n文字放置點:"))
(setq aa (getreal "\n輸入長度值:"))
(setq bb (getreal "\n輸入寬度值:"))
(setq cc (* aa bb))
(setq cc (rtos cc 2 3))
(setq nn (strlen cc))
(setq cc (substr cc 1 (- nn 1)))
(setq tx (strcat (rtos aa 2 2) "x" (rtos bb 2 2) "=" cc))
(command "text" p1 "5" "0" tx)
(princ)
)
張譽璋- 榮譽顧問
- 文章總數 : 304
年齡 : 54
來自 : 彰化縣員林鎮
職業 : 機械設計工程師/AutoCAD講師/AutoCAD外掛系統開發/AutoCAD書籍作者
愛好 : 旅行及電影
個性 : 風趣健談
使用年資 : 25年
使用版本 : AutoCAD2010/2011/2012/2013
積分 : 20
經驗值 : 7521
威望值 : 641
發帖精華 : 2
回帖精華 : 1
注冊日期 : 2008-05-28
回復: [已解決]請問在實數轉字串rtos如何設定四捨五入 或是無條件捨去進入
感謝老師提供方法
我會好好思考
再次感謝老師
我會好好思考
再次感謝老師
swcforest- 初級會員
- 文章總數 : 113
年齡 : 45
來自 : 台中市南區
職業 : 土木工程設計
愛好 : 遊山玩水及AutoLISP
個性 : 開朗活潑
使用年資 : 六七年了
使用版本 : AutoCAD 2016
積分 : 1
經驗值 : 6244
威望值 : 10
注冊日期 : 2008-07-27
回復: [已解決]請問在實數轉字串rtos如何設定四捨五入 或是無條件捨去進入
我也學到了~swcforest 寫到:感謝老師提供方法
我會好好思考
再次感謝老師
真的很感謝!!
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章