Skip to content

Repository files navigation

expr 

Build StatuscodecovDownloadGitHub license

数式を計算します。

使い方

Gradle

  • 依存関係を設定してください。
    repositories {
    maven {
    url "http://dl.bintray.com/javecs/tools"
    }
    }
    dependencies {
    compile 'xyz.javecs.tools:expr:0.2.+'
    }
    

eval()

  • 簡単に1つの数式を計算します。

    val value = eval("3 + 4")
    println(value)
    結果は、 7 です。
    

Calculator

  • 変数、関数など、複数の数式を計算します。

  • 0.1.+ 以上で使えます。

  • クラスを作るときに、数式を渡すことができます。

    val expr = arrayOf("x = 3 + 4", "y = 30 + 40", "x + y")
    val value = Calculator(expr).eval().value
    println(value)
    結果は、 77 です。
    
  • あるいは、後から数式を1つずつ計算することも可能です。

    val calc = Calculator()
    .eval("x = 3 + 4")
    .eval("y = 30 + 40")
    .eval("x + y")
    println(calc.value)
    結果は、 77 です。
    
  • 変数と計算結果を初期化するときには、Calculatorのclear()を実行してください。

Function

  • ユーザー定義関数をプラグインとして実行できます。

  • 0.2.+ 以上で使えます。

  • Functionを作成して、pluginで登録してください。

    val value = Calculator()
    .plugin(Function("f(x)", arrayOf("x + 1")))
    .plugin(Function("g(x,y)", arrayOf("f(x) * y")))
    .eval("x = 3")
    .eval("y = 4")
    .eval("g(x,y)")
    .value
    println(value)
    結果は、 16 です。
    

計算可能な数式

演算子

演算子説明結果
 ^累乗2 ^ 3 ^ 2512 (2^(3^2)と処理されます)
+(符号)正数+11
-(符号)負数-1-1
 *掛け算3 * 412
 /割り算3 / 40.75
 %余り7 % 43
 +足し算3 + 47
 -引き算3 - 4-1
  • 演算の優先順位は、上記の表の上から下の順になります。括弧( )を使えば、括弧内を先に計算します。

    (3 + 4) * 5 この結果は、 35 になります。
    

変数

  • 計算した結果を変数に代入することができます。

  • 変数名は、英小文字から始まる1文字以上の文字列です。2文字目からは、英数字が使えます。

  • 計算結果が代入された変数同士での演算も可能です。

    x = 3 + 4
    x には、7 が代入されます。
    
    x = 3
    y = 4
    z = x + y
    z には、7 が代入されます。
    

常数

常数名説明結果
e自然対数の底eにもっとも近いdouble値です。e2.7182818284590452354
pi円周とその直径の比piにもっとも近いdouble値です。pi3.14159265358979323846
  • 常数名の文字は、大文字と小文字を区別しません。

関数

関数名説明結果
sin指定された角度の正弦(サイン)を返します。sin(1)0.8414709848078965
cos指定された角度の余弦(コサイン)を返します。cos(1)0.5403023058681398
tan指定された角度の正接(タンジェント)を返します。tan(1)1.5574077246549023
asin指定された値の逆正弦(アーク・サイン)を返します。asin(1)1.5707963267948966
acos指定された値の逆余弦(アーク・コサイン)を返します。acos(0)1.5707963267948966
atan指定された値の逆正接(アーク・タンジェント)を返します。atan(1)0.7853981633974483
atan2直交座標(x, y)から極座標(r, theta)への変換から得られる角度thetaを返します。atan2(90, 15)1.4056476493802699
sinhdouble値の双曲線正弦を返します。sinh(1)1.1752011936438014
coshdouble値の双曲線余弦を返します。cosh(1)1.543080634815244
tanhdouble値の双曲線正接を返します。tanh(1)0.7615941559557649
expオイラー数eをdouble値で累乗した値を返します。exp(1)2.718281828459045
log指定されたdouble値の自然対数(底はe)を返します。log(2)0.6931471805599453
log10double値の10を底とする対数を返します。log10(2)0.3010299956639812
sqrtdouble値の正しく丸めた正の平方根を返します。sqrt(2)0.3010299956639812
hypotsqrt(x2 +y2)を返します(途中でオーバーフローやアンダーフローは発生しない)。hypot(3, 4)5
rad度で計測した角度を、相当するラジアンに変換します。rad(1)0.017453292519943295
degラジアンで計測した角度を、相当する度に変換します。deg(1)57.29577951308232
max2つのdouble値のうち大きいほうを返します。max(e, pi)3.141592653589793
min2つのdouble値のうち小さいほうを返します。min(e, pi)2.718281828459045
format指定の小数点以下で四捨五入した結果を返します。format(10/3, 2)3.33
  • 関数名の文字は、大文字と小文字を区別しません。

Javaからの呼び出し方

  • eval()は、スタティクメッソードで呼びます。

    Number value = Evaluator.eval("3 + 4");
    
  • Calculatorは、通常のクラスとして使えます。

    Calculator calc = new Calculator();
    calc.eval("3 + 4");
    Number value = calc.getValue();
    

使われているところ...

使うもの

About

A tiny expression evaluator written in Kotlin

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages