嗨,塔瓦,我想是个有礼貌的人?试试ymg的格式化功能。我也借它来做我的电台标签程序
- ;;http://www.theswamp.org/index.php?topic=45311.0
- ;; rtosta by ymg September 2013 ;
- ;; ;
- ;; Arguments: sta Real number to format as a Station ;
- ;; unit 1 for Imperials, ;
- ;; 2 for Metrics. ;
- ;; prec Integer for number of decimals ;
- ;; ;
- ;; Examples: (rtosta 0 1 0) -> "0+00" (rtosta 1328.325 1 2) -> "13+28.33" ;
- ;; (rtosta 0 2 0) -> "0+000" (rtosta 1328.325 2 2) -> "1+328.33" ;
- ;; ;
- ;; If sta is negative, format is as follow: ;
- ;; (rtosta -1328.325 1 2) -> "13-28.33" ;
- ;; (rtosta -1328.325 2 2) -> "1-328.33" ;
- ;; ;
- (defun rtosta (sta unit prec / str a b dz)
- (setq dz (getvar 'dimzin))
- (setvar 'dimzin 0)
- (setq str (rtos (abs sta) 2 prec))
- (setvar 'dimzin dz)
- (while (< (strlen str)
- (if (= prec 0)
- (+ unit 2)
- (+ prec (+ unit 3))
- ) ;_ end of if
- ) ;_ end of <
- (setq str (strcat "0" str))
- ) ;_ end of while
- (setq a (if (= prec 0)
- (- (strlen str) unit)
- (- (strlen str) prec (+ unit 1))
- ) ;_ end of if
- b (substr str 1 (- a 1))
- a (substr str a)
- ) ;_ end of setq
- (strcat b
- (if (minusp sta)
- "-"
- "+"
- ) ;_ end of if
- a
- ) ;_ end of strcat
- ) ;_ end of defun
|