$( )置換 - 数値から文字列への変換

構文

数値を文字列に変換するには$()置換を使用します。 この表記は、与えられた数式を実行時に評価し、その結果を数値文字列に変換して置き換えます。

この表記は次のような構成で使用します。

$(expression [, format])

ここで、フォーマットはオプションであるか、次のセクションで説明するように、Origin形式、C言語形式、またはOriginとC言語の形式を組み合わせたものにすることができます。

式は次のいずれかになります。

フォーマット 説明
number NA
type $(4.567); //ANS: 4.567
最大14桁の有効数字で数値を表示します
数値変数 .3
xx=1.2345678; 
type $(xx, .3); //ANS: 1.235
変数xxを小数点以下3桁で表示します
数値オブジェクトプロパティ NA
//2列のワークブックがアクティブな場合
type "there are $(wks.ncols) columns";
//ANS: there are 2 columns
wks.ncols値の表示
データセット変数 NA
dataset ds1={2,4,6}; //データセット変数
type $(ds1); //ANS: 2 4 6
ds1をスペース区切りのリストで表示します
範囲変数 *3
//A列に 0.00012345, 6.789, 20.2 を入力
range ra=col(A); //範囲変数
type $(ra, *3); //ANS: 1.23E-4 6.79, 20.2
raを有効数字3桁で表示します
数式 .0,
xx = 1234.5678;
type $(xx*4, .0,); //ANS: 4,938
式の結果を小数点以下0桁とカンマ区切りで表示します

フォーマット

type コマンドを使用して、すべての形式の効果を表示します。

デフォルトフォーマット

角括弧は、format が$() 置換表記に対して任意の引数であることを示します。format を指定しない場合、Originは@SDシステム変数(デフォルト値は14)により指定された桁または有効桁数でexpressionを実行します。 例

double aa =  3.14159265358979323846;
type $(aa);    // ANS: 3.1415926535898

Originフォーマット

Originは、ワークシートまたはテキストラベルの数値のカスタムフォーマットをサポートしています。数値フォーマットオプションの全リストは、Reference Tables: Origin Formatsを参照してください。


フォーマット 説明
*n n 桁の有効桁数を表示します。
xx=1.23456; 
type "xx = $(xx, *2)"; //ANS: xx=1.2
.n n 桁の小数桁数を表示します。
xx=1.23456; 
type "xx = $(xx, .2)"; //ANS: xx=1.23
*n* n桁の有効数字を表示し、末尾のゼロを切り捨てます
xx = 1.10001; 
type "xx = $(xx, *4*)"; //ANS: xx=1.1
.n, カンマ区切り記号を使用して、小数点以下n桁を表示(US, UK, など)
xx = 1234.5678;
type "xx = $(xx, .2,)"; //ANS: xx=1,234.57
xx= 10000;
type "$(xx, .0,)"; //ANS: 10,000
E.n 工学表記でn 桁の小数桁数を表示します。
xx=203465987;
type "xx = $(xx, E*3)"; //ANS: xx=203M
S*n 1E3の形式の科学表記で n 桁の有効桁数を表示
xx=203465987;
type "xx = $(xx, S*3)"; //ANS: xx=2.03E+08
D<format> カスタム日付形式を表示します。ここで、<format> は、列プロパティ表示リストの先頭から始まる、フォーマットのインデックス番号(0からカウント)または、これらの日時形式指定子を使用して作成された文字列のいずれかです。
type "$(date(7/20/2009), D1)";  // ANS: Monday, July 20, 2009
type "$(date(7/20/2009), Dyyyy'-'MM'-'dd)";  //ANS: 2009-07-20
DT=2459858.6946202; //DTにユリウス日を割り当てる
type "DT = $(DT, D1)"; // ANS: DT = Thursday, October 6, 2022
type "Now= $(@D, DMM-dd-yyyy h:mm:ss tt)"; // @D: 現在の日付と時間
T<format> カスタム時間形式を表示します。ここで、<format> は、列プロパティ表示リストの先頭から始まる、フォーマットのインデックス番号(0からカウント)または、これらの時間形式指定子を使用して作成された文字列のいずれかです。
type "$(time(14:31:04), T4)";   //ANS: 02 PM
type "$(time(14:31:04), Thh'.'mm'.'ss)";  //ANS: 02.31.04
DT=2459858.6946202;
type "DT = $(DT, T0)"; // ANS: DT = 16:40
type "Now = $(@D, THH:mm:ss.##)"; // @D: 現在の日付と時間
C<format> カレンダーのフォーマットで月や曜日を表示します。<format> は M# (月) または D# =曜日です。# は 0 (3文字), 1 (完全) または 2 (1文字) に設定できます。
type "$(12, CM0)";  // ANS: Dec
type "$(3, CD1)";  // ANS: Wednesday
#n または ## n桁の整数を表示し、必要に応じてゼロを埋め込みます。または、n桁を参照するには、n個の#を使用します
xx=45;
type "xx=$(xx, #5)"; //ANS: 00045
type "xx=$(xx, ###)"; //AnS: 045
<prefix>##<sep>###<suffix> 数字の間にセパレータ (<sep>) を指定して数値を表示し、オプションで接頭語(<prefix>) や接尾辞 (<suffix>)を追加します。1つの#記号は1桁を示します。この式の最後の#は、常に単位の数字を参照します。最初と2番目の部分の#の数は変更できます。
xx=56000;
type "xx=$(xx, ##+###)"; //ANS: xx=56+000
xx=4000; 
type "xx=$(xx, ##+##M)"; //ANS: xx=40+00M
# #/n n を分母として指定して、数値を小数として丸めて表示します。分子と分母はスラッシュ/で区切られます。分子の桁数は調整されます。
AA = 0.334;
type "AA = $(AA, # ##/##)"; //ANS: AA = 1/3
type "AA = $(AA, # #/8)"; //ANS: AA = 3/8
D[<space>]M[S][F][n] 度数をDegree° Minute' Second"の形式で表示します。ここで、1度= 60分、1分= 60秒です。それぞれを区切るためにスペースを挿入します。N は、分数の小数点以下の桁を示します。Fは、記号なしで区切り記号としてスペースを挿入して次数を表示します。
DD = 37.34255;
type "DD = $(DD, DMS)"; //ANS: DD = 37°20'33"
type "DD = $(DD, D MS)"; //ANS: DD = 37° 20' 33"
type "DD = $(DD, DMSF)"; //ANS: DD = 37 20 33
type "DD = $(DD, DMF1)"; //ANS: DD = 37 20.6

C言語の形式

$() 置換の format の部分は、C言語形式のステートメントもサポートします。

オプション 符号の有無 出力 入力範囲 サンプル
d, i 符号付き 整数値(小数の整数部分または整数値) -2^31 -- 2^31 -1
double nn = -247.56;
type "Value: $(nn,%d)"; // ANS: -247
f, e, E, g, G 符号付き 十進数、科学表記、十進または科学表記 +/-1e290 -- +/-1e-290
double nn = 1.23456e5;
type "Values: $(nn, %9.4f), $(nn, %9.4E), $(nn, %g)";
// ANS: 123456.0000, 1.2346E+005, 123456
double nn = 1.23456e6;
type "Values: $(nn, %9.4f), $(nn, %9.4E), $(nn, %g)";
// ANS: 123456.0000, 1.2346E+006, 1.23456e+006
o, u, x, X 符号なし 8進数、整数、16進数、16進数(大文字) -2^31 -- 2^32 - 1
double nn = 65551;
type "Values: $(nn, %o), $(nn, %u), $(nn, %X)";
// ANS: 200017, 65551, 1000F

Note: 最後のカテゴリでは、負の値は2つの成分で表されます。

OriginとC言語の形式の組合せ

Originは、C言語形式の指定子を使って、ES の形式の使用をサポートしています。 例えば、

xx = 1e6;
type "xx = $(xx, E%4.2f)";  // ANS: 1.00M

負の値の表示

OriginのLabTalkコマンド表記のほとんどにはオプションがあり、オプションの前には常にダッシュ("-")文字が付きます。 したがって、次のコマンドは機能しません。

k=-5;
type $(k); //type -5 として解釈され、-5 が ''type'' コマンドのオプションとされる

このため、置換を引用符または括弧で囲んで - を保護する必要があります。例

K = -5;
type "$(K)"; // 正しく動作
type ($(K)); // 正しく動作

$() による変数の命名

代入ステートメントでは、置換表記$()は、代入演算子の右辺、左辺のいずれの側にあるかに関係なく、置換操作をし、値を与えます。

//値2を持つ変数Aを作成します
A = 2; //値2を持つ変数Aを定義します。  

//値3を持つ変数A2を作成します
A$(A) = 3; $(A) is resolved first so LHS is A2

//結果を検証
A2=;
A$(A)=;


また、関数内の範囲またはデータセット型の引数に変数名が使用されている場合、最初にそれを解決するために $() 置換が必要です。

//列1から5に値を入力
col(1)=data(1,100); 
int nn = 5; 
loop(ii,2,nn)
{
  wcol(ii)=normal(100);
}

//Xファンクションsmoothで変数使用の例
loop(ii,2,nn)
{
 //ii 番目の列 $(ii) をスムージング
  smooth $(ii) method:=aav npts:=10;
}

//LabTalk関数sum()での変数使用の例
lastcolumn=wks.ncols;
//最後の列の後に列を追加し、値を最後の列の合計に設定
col($(lastcolumn+1))= sum($(lastcolumn));
col($(lastcolumn+1))[L]$= sum; //列のロングネームを設定


--- $() 置換のその他の例については、数値から文字列へ変換を参照してください。