From 09:00 PM Friday, August 7 - 10:30 AM CST Saturday, August 8, ni.com will be undergoing system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

形式指定子の構文



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ
LabVIEW 2020ヘルプ

形式指定子を使用して、文字列をフォーマット数値を文字列に変換、および文字列に表示不可能な文字を挿入できます。

文字列にフォーマット」、「配列からスプレッドシート文字列に変換」などの文字列を出力する関数の形式指定子は、以下の構文を使用します。角括弧([])でオプションの要素を囲みます。

%[$][-][+][#][^][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はスペース以外のすべての桁を含みます。たとえば、
  • 3.457の有効桁数は4
  • 0.0012の有効桁数は2
  • 123000の有効桁数は3
メモ  1つの形式指定子で精度と有効桁数の両方を使用することはできません。

単精度数浮動小数点数では、_Significant Digitsに1~6の値を使用することを推奨します。倍精度数浮動小数点数では、_Significant Digitsに1~13の値を使用することを推奨します。

{Unit} (オプション) 関数を使用して物理量(関連付けられた単位のある値)を変換する場合、VIの元の単位を無視します。互換性のある単位を使用する必要があります。この構文要素は、「文字列にフォーマット」関数のみで使用できます。
<組込時間形式>(オプション) T(絶対時間)およびt(相対時間)変換コードで使用する時間特定の形式文字列が含まれます。有効な形式文字については、「時間形式文字列の形式コード」を参照してください。%W%D%H%M%Sおよび%uのみが相対時間に適用されます。
変換コード パラメータのスキャンまたはフォーマット方法を指定する文字は以下のとおりです。
整数と固定小数点数には以下の変換コードを使用します。
  • x―16進数整数(例: B8
  • o―8進数整数(例: 701
  • b―2進数整数(例: 1011
  • d―符号付き10進数整数
  • u―符号なし10進数整数
浮動小数点数と固定小数点数には以下の変換コードを使用します。
  • f―小数形式の浮動小数点数(例: 12.345
  • e―科学表記法の浮動小数点数(例: 1.234E1
  • g―LabVIEWでは数値の指数に応じてfまたはeを使用します。指数が-4より大きい場合、または指定した精度より小さい場合、LabVIEWはfを使用します。指数が-4より小さい場合、または指定した精度より大きい場合、LabVIEWはeを使用します。
  • pSI表記の浮動小数点数。
文字列には以下の変換コードを使用します。
  • s―文字列(例:abc)。スキャン中、sは次の空白文字のみまで一致します。スペースは、1つまたは複数の連続する空白文字と一致します。空白を含む可能性のある文字列をスキャンするには、セットの文字列に変換コードを使用します。スペースまたは他の空白文字など、括弧内に文字列を含むすべての文字を指定します。
  • [ ]―セットの文字[ ]は、括弧の間で指定した文字のみを含む文字列と一致します。文字の一致では大文字と小文字が区別されます。[ ]の変換コードは、文字列をスキャン中の場合にのみ有効です。セットでキャレット記号(^)に一致させるには、括弧の後の最初の文字がキャレットでないことを確認してください。以下のサンプルはセット変換コードの文字の使用を示します。
    • %[aeiou]―小文字の母音のみを含む文字列に一致します。
    • %[0-9a-zA-Z ]―数字、文字、スペースを含む文字列に一致します。ハイフンを使用して、セットの文字範囲を指定することができます。
    • %[^,;]―文字を含むすべての文字列に一致します。ただし、この文字列の最初の文字にカンマやセミコロンは含まれません。
    ハイフンに一致させるには、ハイフンをセットの最初または最後の文字として指定してください。
時間には以下の変換コードを使用します。
  • T―絶対時間。Tは、数値またはタイムスタンプ制御器、定数、および表示器の表示形式プロパティ、および「文字列にフォーマット」、「ファイルにフォーマット」、「文字列からスキャン」、「ファイルからスキャン」関数で使用します。絶対時間を使用するサンプルについては、形式指定子の例の表を参照してください。「配列からスプレッドシート文字列に変換」、「スプレッドシート文字列を配列に変換」、「値をフォーマット」、「値をスキャン」関数ではTは使用できません。タイムスタンプを時間以外の形式にすると、エラーが返されます。
  • t―相対時間。tは、数値またはタイムスタンプ制御器、定数、および表示器の表示形式プロパティ、および「文字列にフォーマット」、「ファイルにフォーマット」、「文字列からスキャン」、「ファイルからスキャン」関数で使用します。相対時間を使用するサンプルについては、形式指定子の例の表を参照してください。「配列からスプレッドシート文字列に変換」、「スプレッドシート文字列を配列に変換」、「値をフォーマット」、「値をスキャン」関数ではtは使用できません。タイムスタンプを時間以外の形式にすると、エラーが返されます。
ローカリゼーションコード LabVIEWが小数点とカンマのどちらを使用して、数値の整数を小数点以下の部分と区切るかを決定する文字。そのコードは、数値の出力に使用する小数点区切りを制御します。これらのコードにより、入出力は発生しません。また、次の%;が検出されるまで、すべての入出力の小数点区切りを変更します。
%,; 小数点区切りとしてのカンマ
%.; 小数点区切りとしてのピリオド
%; システムのデフォルトの区切り区切りを指定しない場合、システムのデフォルト区切りが使用されます。
'\'コード 16進数、スペース、バックスラッシュ、およびその他の形式オプションを指定する文字。

形式指定子の例

以下の表は形式指定子の構文の要素の使用例を示します。

タイプ 引数 形式文字列 出力文字列 コメント
自動フォーマット(%g 12.00 %#g 12 #を指定すると、後に続くゼロが切り捨てられます。gを指定すると、フォーマットする数により指数関数表記または浮動小数点表記のいずれかが選択されます。
12000000 %#g 1.2E+6
10進数(%d 12.67 スコア= %d%% スコア= 13% %dを指定する際、LabVIEWは整数を10進法形式で表示します。
  • 符号付きまたは符号なしの整数は、ビットサイズに関わらず、修正なしの整数として表示されます。
  • LabVIEWは、浮動小数点値を64ビット符号付き整数に丸め込みます。NaNおよび符号付き64ビット整数の最大値よりも大きい値は、符号付き64ビット整数の最大値である9223372036854775807に丸め込まれます。符号付き64ビット整数の最大値より大きい値を記録するには、符号なし4倍長整数に変換関数を使用してそれらの値を64ビット符号なし整数に明示的に型変換する必要があります。
浮動小数点(%f 12.67 温度: %5.1f 温度: 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 時間:00 分:01 秒:31
絶対時間(%T 00:00:00.000 AM
1/1/2001
(グリニッジ標準時)
%<%.3X %x>T 12:00:00.000 AM 01/01/2001 %Tは絶対時間を示します。山括弧(<>)で囲む情報は絶対時間をフォーマットする方法を示します。句読点を含むこのフォーマットはコンピュータの地域設定に基づいて異なります。システムのタイムゾーンに基づいて時間が変更されます。その他の時間形式コードについては、時間形式文字列の形式コードを参照してください。
00:00:00.000 AM
1/1/2001
(グリニッジ標準時)
%<%Y.%m.%d>T 2001.01.01
00:00:00.000 AM
1/1/2001
(グリニッジ標準時)
%^<%.3X %x>T 06:00:00.000 AM 12/31/2000 ^を追加して、グリニッジ標準時で時間をフォーマットします。
文字列(%s Smith John 名前: %s, %s. 名前: Smith, John. 文字列は、「文字列にフォーマット」関数を使用している場合のみ有効です。2番目の例では、Hello, Worldの文字列から最大6文字を使用して、次に全文字列長が10に等しくなるようにスペースでパディングするように指定されます。
Hello, World 文字列: %10.6s 文字列: Hello,
変数の順序(%$ Smith John %2$s %1$s John Smith この例では、Smithは最初の変数、Johnはが2番目の変数です。特定の変数に$構文要素を形式文字列で使用する場合、$構文要素が前にない構文要素は次の変数に適用されます。変数に$構文要素を使用する場合、文字列内のその他のすべての変数に$構文要素を使用して可読性
を向上します。
パーセント文字(%% なし %% % %%は1つの%をフォーマットします。このフォーマットを使用すると、実際のパーセント文字を文字列に挿入できます。文字列にフォーマット関数または文字列からスキャン関数に端子は追加されません。


この記事は役に立ちましたか。

役に立たなかった