Resolver expressões matematicas

22 06 2009

Em java não temos nada pronto para resolver expressões em String como o eval do JavaScript. Então eu fiz algo para isso e agora podemos usar no Java.

PS: Precisa baixar o jar ou os sources que se encontra na pagina Towel Project.

Para usar:

Expression exp = new Expression("(15+5)*8+(5-6/(5+5))");
double result = exp.resolve();

E para facilitar no caso de expressões como “(x+x+x)*5″ onde vai atribuir um valor a x.

Expression exp = new Expression("(x+x+x)*5");
exp.setVariable("x", 3);
double result = exp.resolve();

Estudei um pouco de arvores e resolvi refazer completamente a classe Expression para resolver expressoes matematicas.

Agora ela além de resolver as expressões normais, podem ser usadas varias funções como as da classe Math.

E elas são: cos, sin, tan, acos, asin, atan, sqrt, sqr, log, exp, floor, ceil, abs e neg

Para usar na expressão coloque função(valor)
Algo como: cos(10)*tan(2*2)+log(1)

Fora isso ainda foi acrescentado uma função random ‘rnd’, que pode ser usada como variavel aleatoria.
Ex: ‘rnd(42)’, retorna um valor entre 0 e 41.99








Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 154 outros seguidores