Calc是一個(gè)用Java編寫的算術(shù)表達(dá)式計(jì)算工具。它能夠直接解析一個(gè)字符串形式的算術(shù)表達(dá)式并計(jì)算出結(jié)果。
Calc使用下面的語法:
E -> I | E + I | E - I
I -> U | I * U | I / U
U -> + U | - U | <浮點(diǎn)數(shù)> | ( E ) | <函數(shù)> | PI | E
其中,<浮點(diǎn)數(shù)>是一個(gè)符合java規(guī)范格式的10進(jìn)制浮點(diǎn)數(shù),PI是圓周率,E是自然對數(shù)的底。
<函數(shù)>實(shí)現(xiàn)了一些常用函數(shù),函數(shù)的一般形式是:
<函數(shù)名> ( <參數(shù)>... )
參數(shù)也是一個(gè)表達(dá)式(即E),可用的函數(shù)列表則請參考圖形界面或java.lang.Math的幫助文檔。
Calc內(nèi)部使用雙精度浮點(diǎn)型(double)進(jìn)行運(yùn)算,一個(gè)正確的表達(dá)式經(jīng)Calc計(jì)算所得的結(jié)果應(yīng)該等于相應(yīng)java表達(dá)式的結(jié)果。
示例代碼:
import yyq.prod.calc.Calculator;
...
double result = Calculator.calc("1 + 2 + sin(1)");
System.out.println(result);

下載:
http://www.tkk7.com/Files/20070716/calc.zip
部分source下載:
http://www.tkk7.com/Files/20070716/calc_src.zip