数学演算子 (Math Operators)

  • トランスフォーマーのパラメーターとして数式エディタ (Arithmetic Editor) により入力する数式では、次の表に掲げる数学演算子が使用できます。
  • これらの演算子は、数式エディタの編集画面でのキー入力の他、画面左側の数学演算子 (Math Operators) セクションに表示されている演算子のダブルクリック、または、ドラッグ&ドロップによって編集中の数式に挿入することができます。
  • FMEで利用できる数学演算子を演算の優先順に掲げます。
  • 演算の優先順が同じ演算子(この表で同じ行に記載したもの)は、数式内で左にあるものが優先されます。
  • 数式の一部をカッコ ( ) でくくったときは、演算子の優先順位に関わらずカッコ内の演算が先に行われます。
演算子説明
- + ~ !単項マイナス, 単項プラス, ビット単位の否定, 論理否定(NOT)
単項マイナスは被演算子の符号(正負)を逆転した値を返し、単項プラスは被演算子と同じ値を返す(単項マイナスとの横並びで設けられているが、実質的には何もしない)。
ビット単位の否定は整数値のみに適用できる。
論理否定は被演算子が「0」のときに「1」、「0でない」ときに「0」を返す。
**累乗
例えば 3**2 は 9(3の2乗)を返す。
* / %乗算, 除算, 剰余算
除算について後述の「/ 演算子による整数同士の除算」参照。
% 演算子(剰余算)は整数のみに適用できる。剰余の符号は除数(分母)と同じになる。
+ -加算, 減算
<< >>左ビットシフト, 右ビットシフト
整数の被演算子に対してのみ有効。
< > <= >=左辺が右辺より小さい, 左辺が右辺より大きい, 左辺が右辺以下, 左辺が右辺以上
これらの演算子は条件が真であるときに「1」, 偽であるときに「0」を返す。
== !=左辺と右辺が等しい, 左辺と右辺が等しくない
これらの演算子は条件が真であるときに「1」, 偽であるときに「0」を返す。
&ビット単位の論理積(AND)
整数の被演算子に対してのみ有効。
^ビット単位の排他的論理和(XOR)
整数の被演算子に対してのみ有効。
|ビット単位の論理和(OR)
整数の被演算子に対してのみ有効。
&&論理積(AND)
条件が真であるときに「1」, 偽であるときに「0」を返す。
||論理和(OR)
条件が真であるときに「1」, 偽であるときに「0」を返す。
? : (x?y:z)三項演算子
x の値が「0でない」ときに y の値, x の値が「0」のときに z の値を返す。

/ 演算子による整数同士の除算

  • FME 2014 以前の / 演算子は、両辺がどちらも整数である場合に除算結果の小数部を切り捨てた整数を返しましたが、FME 2015 でこの動作が変更され、両辺がどちらも整数であっても小数点数を返すようになりました。例えば “3/2” は、FME 2014 以前では 1 を返しましたが、FME 2015 以降では 1.5 を返します。
  • ただし、FME 2014 以前で作成されたワークスペースを FME 2015 以降で実行する場合、数式の編集をしない限りは従来の動作が保たれ、整数同士の除算結果は整数となります。