解析算術表示式

2021-08-31 22:28:41 字數 528 閱讀 9617

現有字串形式的算術表示式,求計算其值。

string str1 = "2000+600/3-300*2";

string str2 = "2000+600.389895334/2-300*2+6*100";

求解方法如下:

/**

* 讀取公式,返回結果。

* @param express:算術公式

* @return 結果字串(保留兩位小數)

*/public double resolve(string express) catch (scriptexception e)

//保留最後兩位小數

bigdecimal bigdecimal = new bigdecimal(mypay);

mypay = bigdecimal.setscale(2,bigdecimal.round_half_up).doublevalue();

return mypay;

}

利用棧解析算術表示式

在沒有接觸到棧這種資料結構時,一直覺得用程式計算四則表示式是件相當繁瑣的事。但利用棧,問題就立刻變得容易許多。解析任何包括 和0到9數字組成的算術表示式,並計算其結果。中綴表示式就是通常所說的算術表示式,比如 1 2 3 4。字尾表示式是指通過解析後,運算子在運算數之後的表示式,比如上式解析成字尾表...

算術表示式

引用標頭檔案 include include include using namespace std typedef int elemtype const int stack init size 100 儲存空間的初始化分配量 const int stackincrement 10 儲存空間分配增量...

算術表示式

include include include include define maxzhansize 30 char stack maxzhansize char deleted int top void add int top,char item 逆波蘭數計算 define element int...