形式指定子の構文
- 更新日2025-04-04
- 14分で読める
形式指定子を使用して、文字列をフォーマット、数値を文字列に変換、および文字列に表示不可能な文字を挿入できます。
「文字列にフォーマット」、「配列からスプレッドシート文字列に変換」などの文字列を出力する関数の形式指定子は、以下の構文を使用します。角括弧[]でオプションの要素を囲みます。
%[$][-][+][#][^][0][Width][.Precision||_SignificantDigits][{ Unit }][< Embedded information >] Conversion Code
ここで、Widthは0より大きい数値、.Precisionおよび_SignificantDigitsは0以上の数値である必要があります。
「文字列からスキャン」、「スプレッドシート文字列を配列に変換」などの文字列をスキャンする関数の形式指定子には、以下に示す簡素化された構文を使用します。
%[Width]Conversion Code
「文字列にフォーマット」、「ファイルにフォーマット」、「文字列からスキャン」、および「ファイルからスキャン」関数は、形式文字列入力で複数の形式指定子 (拡張可能な関数の各入力または出力あたり1つ) を使用できます。
形式指定子の構文の要素
以下の表は形式指定子の構文の要素を示します。詳細については形式指定子の例を参照してください。
構文要素 | 説明 |
---|---|
% | 形式指定子を開始します。 |
$ (オプション) | フォーマット関数を使用している場合、この修正子は変数を表示する順序を指定します。この修正子のすぐ後の変数の順序を表す数が含まれます。 |
- (オプション) | フォーマット関数を使用する場合、この修飾子はその幅内でパラメータを右でなく左揃えにします。 |
+ (オプション) | フォーマット関数を使用する場合、正の数値の場合でもこの修飾子は符号を含めます。 |
^ (オプション) | フォーマット関数とeまたはg変換コードを使用している場合、この要素は数値を工学表記にフォーマットします。工学表記では、指数が常に3の倍数になります。 |
# (オプション) | フォーマット関数を使用している場合、この修飾子は後に続くゼロを削除します。小数点以下の桁のない数値の場合、この修飾子は記述部も削除します。 |
0 (オプション) | フォーマット関数を使用する場合、この修飾子を「-」修飾子なしで使用して、最小幅に到達するスペースではなくゼロで数値パラメータの左側の余分なスペースをパディングします。 |
Width (オプション) | 「文字列からスキャン」などのスキャン関数を使用する場合、Width要素は使用する最大文字フィールド幅を指定します。LabVIEWは、パラメータを処理する際、最大数の文字をスキャンします。フォーマット関数を使用している場合、Width要素は出力の最小の文字フィールド幅を指定します。この幅は最大幅ではありません。LabVIEWはパラメータを切り捨てずにパラメータの形式に必要な数の文字を使用します。LabVIEWは位置調整に応じてパラメータの左または右のフィールドをスペースでパディングします。Widthが指定されていない、または0の場合、出力は変換された入力パラメータを含めるのに必要な長さになります。 |
.Precisionまたは_Significant Digits (オプション) | フォーマット関数を使用している場合、「.」または「_」は表示する桁数を制御します。「.」を使用すると、LabVIEWはその後の数を小数点以下の桁の精度指定子として使用します。「_」を使用すると、LabVIEWはその後の数を表示形式で使用する有効桁数として使用します。
.Precision―浮動小数点表記で使用すると、この要素は小数点以下の桁数を指定します。「.」がない場合、LabVIEWは6桁精度を使用します。「.」が0の場合、精度は挿入されません。文字列パラメータで使用した場合、.Precisionはスキャンするフィールドの最大幅を指定します。LabVIEWはこの文字数を越える文字列を切り捨てます。 _Significant Digits―データを指定した桁数まで丸め込み、そのデータを表示します。LabVIEWは表示目的のみでデータを丸め込み、元のデータには影響を与えません。.Precisionは小数点以下の桁数にのみ影響を与え、_Significant Digitsは空白以外のすべての桁数を含めます。たとえば、
メモ 1つの形式指定子で精度と有効桁数の両方を使用することはできません。 単精度数浮動小数点数では、_Significant Digitsに1~6の値を使用することを推奨します。倍精度数浮動小数点数では、_Significant Digitsに1~13の値を使用することを推奨します。 |
{Unit} (オプション) | 関数を使用して物理量 (関連付けられた単位のある値) を変換する場合、VIの元の単位を無視します。互換性のある単位を使用する必要があります。この構文要素は、「文字列にフォーマット」関数のみで使用できます。 |
<組込時間形式> (オプション) | T (絶対時間) およびt (相対時間) 変換コードで使用する時間特定の形式文字列が含まれます。有効な形式文字列については、「時間形式文字列の形式コード」を参照してください。%W、%D、%H、%M、%Sおよび%uのみが相対時間に適用されます。 |
変換コード | パラメータのスキャンまたはフォーマット方法を指定する文字は以下のとおりです。 整数と固定小数点数には以下の変換コードを使用します。
浮動小数点数と固定小数点数には以下の変換コードを使用します。
文字列には以下の変換コードを使用します。
時間には以下の変換コードを使用します。
|
ローカリゼーションコード | LabVIEWが小数点とカンマのどちらを使用して、数値の整数を小数点以下の部分と区切るかを決定する文字。そのコードは、数値の出力に使用する小数点区切りを制御します。これらのコードにより、入出力は発生しません。また、次の%;が検出されるまで、すべての入出力の小数点区切りを変更します。
|
'\'コード | 16進数、スペース、バックスラッシュ、およびその他の形式オプションを指定する文字です。 |
形式指定子の例
以下の表は形式指定子の構文の要素の使用例を示します。
タイプ | 引数 | 形式文字列 | 出力文字列 | コメント |
---|---|---|---|---|
自動フォーマット (%g) | 12.00 | %#g | 12 | #を指定すると、後に続くゼロが切り捨てられます。gを指定すると、フォーマットする数により指数関数表記または浮動小数点表記のいずれかが選択されます。 |
12000000 | %#g | 1.2E+7 | ||
10進数 (%d) | 12.67 | score= %d%% | score= 13% |
%dを指定する際、LabVIEWは整数を10進法形式で表示します。
|
浮動小数点 (%f) | 12.67 | Temp: %5.1f | Temp: 12.7 | 形式文字列セクションの5は5の幅を指定し、1は小数点の右側の桁数つまり精度を指定します。 |
12.67 N | %5.3f | 12.670 N | 単位は、「文字列にフォーマット」関数を使用した場合にのみ有効です。これらは物理量入力の例です。2番目の例は、ある単位から別の単位に変換する方法を示します。疑問符は、形式指定子の単位が入力の単位と競合すると表示されます。 | |
12.67 N | %5.3{mN}f | 12670.000 mN | ||
12.67 N | %5.3{kg}f | 12.670 ?kg | ||
科学表記 (%e) | 12.67 | %.3e | 1.267E+1 | 指数が常に3の倍数になる工学表記に変更するには、^を追加します。 |
12.67 | %^.3e | 12.670E+0 | ||
SI表記 (%p) | 12000000 | %.2p | 12.00M | 値.2は、結果文字列の精度を2桁に指定します。値_2は、結果文字列の有効桁数を2桁に指定します。%pは、SI接頭辞を追加します。 |
12000000 | %_2p | 12M | ||
16進数 (%x) | 12 | %02x | 0C | -は、出力文字列を左揃えにすることを示します。0は結果文字列を0でパディングすることを示します。数値は結果文字列の幅を指定します。つまり、-nの値は、出力文字列をn幅までスペースでパディングします。bは底2、oは底8、xは底16です。 |
8進数 (%o) | 12 | %06o | 000014 | |
2進数 (%b) | 12 | %b | 1100 | |
相対時間 (%t) | 91.80 | %.2t | 01:31.80 | LabVIEWは経過時間を完全な週%W、日%D、時間%H、分%M、秒%S、および小数秒%uにフォーマットします。その他の時間形式コードについては、時間形式文字列の形式コードを参照してください。 |
91.8 | %<時間:%H 分:%M 秒:%S>t | Hours:00 Minutes:01 Seconds:31 | ||
絶対時間 (%T) | 00:00:00.000 AM 1/1/2001 (Universal Time) | %<%.3X %x>T | 12:00:00.000 AM 01/01/2001 | %Tは絶対時間を示します。山括弧 (<>) で囲む情報は絶対時間をフォーマットする方法を示します。句読点を含むこのフォーマットはコンピュータの地域設定に基づいて異なります。システムのタイムゾーンに基づいて時間が変更されます。その他の時間形式コードについては、時間形式文字列の形式コードを参照してください。 |
00:00:00.000 AM 1/1/2001 (Universal Time) | %<%Y.%m.%d>T | 2001.01.01 | ||
00:00:00.000 AM 1/1/2001 (Universal Time) | %^<%.3X %x>T | 06:00:00.000 AM 12/31/2000 | ^を追加して、グリニッジ標準時で時間をフォーマットします。 | |
文字列 (%s) | Smith John | Name: %s, %s. | Name: Smith, John. | 文字列は、「文字列にフォーマット」関数を使用している場合のみ有効です。2番目の例では、Hello, Worldの文字列から最大6文字を使用して、次に全文字列長が10に等しくなるようにスペースでパディングするように指定されます。 |
Hello, World | String: %10.6s | String: Hello, | ||
変数の順序 (%$) | Smith John | %2$s %1$s | John Smith | この例では、Smithは最初の変数、Johnはが2番目の変数です。特定の変数に$構文要素を形式文字列で使用する場合、$構文要素が前にない構文要素は次の変数に適用されます。変数に$構文要素を使用する場合、文字列内のその他のすべての変数に$構文要素を使用して可読性 を向上します。 |
パーセント文字 (%%) | なし | %% | % | %%は1つの%をフォーマットします。このフォーマットを使用すると、実際のパーセント文字を文字列に挿入できます。文字列にフォーマット関数または文字列からスキャン関数に端子は追加されません。 |