入力欄の値から四則演算を行い、結果を入力欄に表示する機能。
また、設定により文字列結合も可能。
1. 数式入力欄の作成
フォームテンプレートで入力欄を新規作成し、型を"数式"にします。
2. 数式のモーダルウィンドウ表示
型設定に配置されている設定ボタンをクリックすると以下の画像のようにモーダルウィンドウが表示されます。
このモーダルウィンドウから数式の設定を行います。
数式を作成する際は、下の表から入力欄を選択していきます。
下の表に含まれる入力欄は以下の型に制限されています。
- テキスト
- 数値
- ラジオボタン
- 選択リスト
- 数式
文字列結合のチェックボックスを有効にすると、計算ではなく文字列結合となります。
文字列結合については 4. 数式の設定(文字列結合)を確認してください。
3. 数式の設定
3-1. 数式の作成
数式を作成するには、下の変数一覧表の追加ボタンを押して変数を追加し、数式設定に四則演算(+, -, *, /)や括弧(普通の括弧のみ可)を入力して数式を作成します。
※変数の前後には半角スペースが自動的に挿入されますが、これを消さないでください。
3-2. 数式の削除
数式設定のテキストエリア内の数式を直接編集してください。
変数を削除する際、{変数名}全体を削除してください。
3-3. 変数を絞り込む
絞り込みにキーワードを入れると、セクション名、項目名、入力欄名のいずれかにキーワードが含まれている入力欄のみ表示します。
また、キーワードを空にする、または入力欄内のリセットボタンを押すことで全ての入力欄が表示されます。
3-4. プレビュー機能
数式が想定通り動くか確かめるためにプレビュー機能があります。
モーダルのフッターにあるプレビューボタンを押すとプレビューモードになります。
プレビューモードでは数式を編集することはできません。
一方で、変数一覧表の変数の値に値を入力することで、式の値に計算結果が表示されます。
ただし、全て変数に値が入力されたときに計算されます。
3-4-1. プレビューモードにならない場合
数式の構文チェックで異常を検知された場合、プレビューモードに移行しません。
数式の構文チェックで異常となる場合は以下のような事柄が挙げられます。
- 変数名が想定されていない値になっている
- 演算子が予期しない位置に挿入されている
3-4-2. 計算結果がエラーになる場合
計算結果がエラーになる場合があります。その最たる例が0除算になります。
カミレスの数式の計算機能では、計算結果がinfinityまたは-infinityになった場合はエラーメッセージを表示します。
また、式が無効な場合、エラーになります。
3-5. 数式を保存する
プレビューモードの場合はプレビューモードを終了します。
保存ボタンをクリックすると、構文チェックが行われ、異常が検知されなければ保存されます。
3-5-1. 数式を保存する際にエラーになる場合
数式を保存する際に構文チェックが行われます。その構文チェックはプレビューモードへ移行する時に行われるものと同一です。
しかし、追加で数式入力欄の循環参照チェックが行われます。
数式の循環参照とは、各数式の入力欄が他の数式の入力欄を変数として用いており、その変数の仕様状況を追うと、元の入力欄に戻ってきてしまう状態を指します。
数式の循環参照はトポロジカルソートと呼ばれるアルゴリズムを利用して検出しています。
数式の循環参照がある場合、以下のように表示されます。
4. 数式の設定(文字列結合)
4-1. 数式の作成
3. 数式設定と同様に設定を行います。
数式と違う点として、使用できる演算子は"+"のみです。
※変数の前後には半角スペースが自動的に挿入されますが、これを消さないでください。
4-2. 固定文字列の追加
固定文字列を扱う場合、数式にダブルクォート(")またはシングルクォート(')で囲った文字列を変数と同様に"+"で繋げてください。
プレビューボタンも数式と同様に利用できます。
4-3. エスケープ文字
固定文字列の中にダブルクォート(")またはシングルクォート(')、バックスラッシュ(\)を使用したい場合、以下のようにこれらの文字列の直前にエスケープ文字のバックスラッシュ(\)を付けてください。
文字列を囲っているクォートとは別のクォートを文字列の中に入れる場合、バックスラッシュを使用しなくても利用ができます。
例:固定文字列を囲っている記号シングルクォート、固定文字列がダブルクォート。
5. Math関数を用いた計算
Math関数を用いることで四捨五入や累乗など複雑な計算が可能になります。
ここでは使用できる関数の一部を紹介します。
5-1. 四捨五入
数式設定に Math.round()と入力し、括弧の中に数字または変数を入れてください。
括弧の中に入力された値が四捨五入されます。
■任意の桁数で四捨五入する場合
Math関数では桁数を指定した四捨五入は行えません。そのため、小数点の位置を調節する必要があります。
小数第2位で四捨五入する場合は以下の数式になります
5-2. 累乗
数式設定に Math.pow()と入力し、括弧の中に数字または変数を入れます。
括弧の中には二つの値をカンマ区切りで入力します。
1番目の値が「底」を表し、2番目の値が「指数」を表します。
例として、23を計算する場合は Math.pow(2, 3)と入力します。
5-3. 最大値・最小値
最大値を求める際は Math.max()と入力します。一方、最小値を求める際は Math.min()と入力します。
括弧の中に数字または変数をカンマ区切りで入力してください。入力できる値の数に制限はありません。
括弧に入力された値の最大値または最小値を求めることができます。
その他、利用できるMath関数については JavaScriptの公式リファレンス を参照してください。
6. 数式の計算
数式は連鎖して計算されます。
7. 既知の不具合
小数の計算を行うと計算結果が想定しない値になることが報告されています。
これはJavaScriptの仕様に依るものです。
この不具合は近日対応予定です。