「Rtos」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
編集の要約なし
 
(同じ利用者による、間の7版が非表示)
7行目: 7行目:
: 数値を文字列に変換する。
: 数値を文字列に変換する。
: rtos 関数は、mode 引数、precision 引数、およびシステム変数 UNITMODE、DIMZIN、LUNITS、LUPREC の設定に従って number を表す文字列を返す。
: rtos 関数は、mode 引数、precision 引数、およびシステム変数 UNITMODE、DIMZIN、LUNITS、LUPREC の設定に従って number を表す文字列を返す。


; 引数
; 引数
24行目: 25行目:


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




; サンプル
; サンプル
: 変数 x を次のように設定する。
 
: (setq x 17.5)  
<pre class="brush:autolisp;">;変数 x を次のように設定する。
: 17.5
(setq x 17.5)  
: x の値を、精度が 4 の指数表記形式の文字列に変換。
17.5
: (setq fmtval (rtos x 1 4))  
; x の値を、精度が 4 の指数表記形式の文字列に変換。
: '''"1.7500E+01"'''
(setq fmtval (rtos x 1 4))  
: x の値を、精度が 2 の十進表記形式の文字列に変換。
"1.7500E+01"
: (setq fmtval (rtos x 2 2))  
; x の値を、精度が 2 の十進表記形式の文字列に変換。
: '''"17.50"'''
(setq fmtval (rtos x 2 2))  
: x の値を、精度が 2 の工業図面表記形式の文字列に変換。
"17.50"
: (setq fmtval (rtos x 3 2))  
; x の値を、精度が 2 の工業図面表記形式の文字列に変換。
: '''"1'-5.50¥""'''
(setq fmtval (rtos x 3 2))  
: x の値を、建築図面表記形式の文字列に変換。
"1'-5.50"
: コマンド: (setq fmtval (rtos x 4 2))  
; x の値を、建築図面表記形式の文字列に変換。
: '''"1'-5 1/2¥""'''
(setq fmtval (rtos x 4 2))  
: x の値を、分数表記形式の文字列に変換。
"1'-5 1/2"
: (setq fmtval (rtos x 5 2))  
; x の値を、分数表記形式の文字列に変換。
: '''"17 1/2"'''
(setq fmtval (rtos x 5 2))  
:
"17 1/2"
: システム変数 UNITMODE を 1 に設定すると、入力されたように単位が表示する。 これは、工業図面表示、建築図面表記、分数表記形式を指定したときに rtos 関数が返す値に影響する。
 
: 次に、例を示す。  
; システム変数 UNITMODE を 1 に設定すると、入力されたように単位表示する。 これは、工業図面表示、建築図面表記、分数表記形式を指定したときに rtos 関数が返す値に影響する。
: (setvar "unitmode" 1)  
; 次に、例を示す。  
: 1
 
: (setq fmtval (rtos x 3 2))  
(setvar "unitmode" 1)  
: '''"1'5.50¥""'''
1
: (setq fmtval (rtos x 4 2))  
(setq fmtval (rtos x 3 2))  
: '''"1'5-1/2¥""'''
"1'5.50¥""
: (setq fmtval (rtos x 5 2))  
(setq fmtval (rtos x 4 2))  
: '''"17-1/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"
 
</pre>
-----
関連事項
* [[atoi]] 関数
* [[atof]] 関数
* [[itoa]] 関数
* [[rtos]] 関数
* [[angtos]] 関数
* [[dimzin]] システム変数


[[Category:AutoLISP]]
[[Category:AutoLISP]]

2021年8月9日 (月) 13:31時点における最新版

構文
(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"


関連事項