quinta-feira, 18 de novembro de 2010

Formulas Matemáticas Em Java

0

Quem nunca precisou usar alguma formula matemática em Java, para efetuar alguma operação?

Existem alguns casos que o usuário quer definir a formula do calculo. Muitas vezes isso é uma comodidade para ele, e um PARTO para os desenvolvedores, algumas metodologias ou bibliotecas resolvem o problema, porém você tem que implementar algo, sempre tem algum ajuste. Precisei usar o Metodo Price em um calculo financeiro, a formula não é complexa, mas como toda a formula matemática, deve se ter cuidado com os parênteses. Eu pensei em fazer algo mais braçal, mas como um bom preguiçoso, resolvi gastar um certo tempo pesquisando algumas maneiras de fazer isso, eis que me surge uma luz no fim do túnel, o Bean Scripting Framework. Linguagens de script são mais flexíveis nesse aspecto que em Java, muitas vezes temos que fazer em alguns casos contornos maiores, como usamos Java 6 para desenvolver, que tem suporte ao ScriptEngine, tudo flui mais fácil, se você usa alguma versão mais antiga, por favor faça um upgrade urgente, quem está perdendo é você.

PS: As bibliotecas são referenciadas via maven, se for usar ANT ou qualquer outra coisa, tem que procurar no Google.

vamos precisar de duas simples bibliotecas o projeto o Bean Scripting Framework (BSF -> bsf:bsf) e o groovy (org.codehaus.groovy:groovy) (você pode usar Jython, JRuby, e qualquer outra coisa que queira), vou usar uma formula simples inventada por mim: x ** 2 + 10

auhsduhahsduas, chega a ser ridículo, mas depois muda isso ai pra testar (o operador ** no groovy representa potenciação)

Olha a trabalheira:

String formula = "x ** 2 + 10";
BSFManager manager = new BSFManager();
manager.declareBean("x", "10", Integer.class);
Double result = (Double) manager.eval("groovy", "myScript.groovy", 0, 0, formula);

Eu fiz um cast pra Double, mas o retorno é um object, pode retornar qualquer coisa.
Mas fácil que isso só dois disso heheh.

0 comentários:

 
Design by ThemeShift | Bloggerized by Lasantha - Free Blogger Templates | Best Web Hosting