Rtos

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(rtos number [mode [precision]])


機能
数値を文字列に変換する。
rtos 関数は、mode 引数、precision 引数、およびシステム変数 UNITMODE、DIMZIN、LUNITS、LUPREC の設定に従って number を表す文字列を返す。


引数
  • number : 数値。
  • mode : 長さの単位モードを表す整数。 mode 引数はシステム変数 LUNITS が認めている値に対応する。
mode 引数には、次の値の 1つを指定することができる。
1 指数表記
2 十進数
3 工業図面表記(フィートと小数インチ)
4 建築図面表記(フィートと分数インチ)
5 分数表記
  • precision : 精度を指定する整数。
mode 引数と precision 引数は、システム変数 LUNITS と LUPREC に対応する。
これらの引数を省略すると、LUNITS と LUPREC の現在の設定を使用する。


戻り値
文字列。
システム変数 UNITMODE は、工業図面表記、建築図面表記、分数表記(mode の値が 3、4、5)を選択したときに返される文字列に影響する。
システム変数 DIMZIN は、小数点以下の値の省略に影響する。


サンプル
;変数 x を次のように設定する。
(setq x 17.5) 
17.5
; x の値を、精度が 4 の指数表記形式の文字列に変換。
(setq fmtval (rtos x 1 4)) 
"1.7500E+01"
; x の値を、精度が 2 の十進表記形式の文字列に変換。
(setq fmtval (rtos x 2 2)) 
"17.50"
; x の値を、精度が 2 の工業図面表記形式の文字列に変換。
(setq fmtval (rtos x 3 2)) 
"1'-5.50"
; x の値を、建築図面表記形式の文字列に変換。
(setq fmtval (rtos x 4 2)) 
"1'-5 1/2"
; x の値を、分数表記形式の文字列に変換。
(setq fmtval (rtos x 5 2)) 
"17 1/2"

; システム変数 UNITMODE を 1 に設定すると、入力されたように単位表示する。 これは、工業図面表示、建築図面表記、分数表記形式を指定したときに rtos 関数が返す値に影響する。
; 次に、例を示す。 

(setvar "unitmode" 1) 
1
(setq fmtval (rtos x 3 2)) 
"1'5.50¥""
(setq fmtval (rtos x 4 2)) 
"1'5-1/2¥""
(setq fmtval (rtos x 5 2)) 
"17-1/2"

; 接頭・接尾のゼロ省略の差
(setvar "dimzin" 0)
(rtos 12.34 2 5)
"12.34000"

(setvar "dimzin" 8)
(rtos 12.34 2 5)
"12.34"

(setvar "dimzin" 0)
(rtos 0.1234 2 5)
"0.12340"

(setvar "dimzin" 4)
(rtos 0.1234 2 5)
".12340"

; 小数点の精度指定時の注意点
; 指定精度以下の桁の値が 4 以下ならその桁での切り捨て動作
(rtos 2.9949 2 2)   -> "2.99"
(rtos 2.949 2 1)  -> "2.9"
(rtos 2.49 2 0) -> "2"

; 指定精度以下の桁の値が 5 以上だと四捨五入で丸まってしまう
(rtos 2.995 2 2)  -> "3.00"
(rtos 2.95 2 1) -> "3.0"
(rtos 2.5 2 0) -> "3"


関連事項