定数

システム定義定数

あらかじめ以下の定数が組みこまれています。これらの定数は数値と同様に 式の中に記述できます。

定数名doubleの値BigDecimalの値
PIjava.lang.Math.PInew BigDecimal(java.lang.Math.PI)
Ejava.lang.Math.Enew BigDecimal(java.lang.Math.E)

(例)

double circleArea = formulaEvaluator.dEvaluate("4.5 * 4.5 * PI");

ユーザ定義定数

よく使う数字を「ユーザ定義定数」として名前を付けて使用できます。ユーザ定義定数は、 defineUserConstant()メソッドで登録します。

formulaEvaluator.defineUserConstant(定数名, 定数の値);

定数名は英字で始り、英字、数字、アンダースコア(_)で構成されていなければなりません。 定数の値は、数字ではなく数字を表す文字列で指定します。 指定した文字列は、doubleの計算に使用する 場合はDouble.parse(文字列)で、BigDecimalの計算に使用する場合は、new BigDecimal(文字列) で値に変換されます。

(例)


formulaEvaluator.defineUserConstant("ROOT2", "2.41421356");//正しい
formulaEvaluator.defineUserConstant("ROOT2", 2.41421356);//コンパイルエラー

システム定義定数の変更

通常は、システム定義定数と同じ名前("PI"、"E")のユーザ定義定数を登録すると例外がスローされます。 これは誤ってシステム定義定数を上書きしてしまわないための保護です。 強制的に登録する場合はdefineUserConstant(String,String,boolean)を使って、 最後の引数にtrueを指定すると、システム定義定数を上書きできます。これによって、 例えば円周率PIを3.14にする事が出来ます。(そうしたければ「3」にでも。)

formulaEvaluator.defineUserConstant("PI", "3.14",true);//正しい
formulaEvaluator.defineUserConstant("PI", "3.14");//例外スロー