使用Pear的RPN庫處理工資計算公式
工資系統中通常都有一個工資計算公式的定義。例如 實發=應發-應扣 等等。要計算這樣的表示式,傳統的方法就是用逆波蘭表示式解析它。
下面介紹一個簡單的方法來實現計算。
使用PHP的Pear庫中的RPN.php。用法如下
<?
include 'include/pear/RPN.php';
//$expression = "(2^3)+sin(30)-(!4)+(3/4)";
$expression = "(2.33*6)";
$rpn = new Math_Rpn();
echo $rpn->calculate($expression,'deg',false);
?>
也就是說先把實發=應發-應扣 這個公式裡面的每一項替換成具體的數值,然後計算得到他的值。
RPN支援的運算子號有
var $_operation = array (
'(' => array ('left bracket', 0),
')' => array ('right bracket', 1),
'+' => array ('sum', 1, 2, '_sum'),
'-' => array ('difference', 1, 2, '_difference'),
'*' => array ('multiplication', 2, 2, '_multiplication'),
'/' => array ('division', 2, 2, '_division'),
'r' => array ('root', 3, 2, '_root'),
'^' => array ('power', 3, 2, '_power'),
'sin' => array ('sine', 3, 1, '_sin'),
'cos' => array ('cosine', 3, 1, '_cos'),
'tan' => array ('tangent', 3, 1, '_tan'),
'asin' => array ('asine', 3, 1, '_asin'),
'acos' => array ('acosine', 3, 1, '_acos'),
'atan' => array ('atangent', 3, 1, '_atan'),
'sqrt' => array ('square root', 3, 1, '_sqrt'),
'exp' => array ('power of e', 3, 1, '_exp'),
'log' => array ('logarithm', 3, 1, '_log'),
'ln' => array ('natural logarithm', 3, 1, '_ln'),
'E' => array ('power of 10', 3, 1, '_E'),
'abs' => array ('absolute value', 3, 1, '_abs'),
'!' => array ('factorial', 3, 1, '_factorial'),
'pi' => array ('value of pi', 4, 0, '_const_pi'),
'e' => array ('value of e', 4, 0, '_const_e'),
'mod' => array ('modulo', 3, 2, '_mod'),
'div' => array ('integer division', 3, 2, '_div'),
);
當然,我們可以新增自己的函式,例如計算稅率的tax() 等等。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=777520
相關文章
- 如何計算FMEA的風險順序數(RPN)
- word公式怎麼計算 word公式計算的方法公式
- 解析計算公式公式
- 從一個資料庫連線數計算公式談起資料庫公式
- 一個求和公式的計算公式
- DB CPU time% 的計算公式公式
- EOQ的計算公式簡化公式
- Oracle 成本計算公式Oracle公式
- 使用運算元控制公式運算公式
- [索引]Oracle RAC資料庫平行計算的使用索引Oracle資料庫
- 計算總頁數公式公式
- Groovy簡單公式計算公式
- 降水強度計算公式公式
- 設計模式實踐---策略+簡單工廠對大量計算公式的處理設計模式公式
- Excel公式大全詳解 excel表格計算公式大全Excel公式
- 幾個引數配置的計算公式公式
- 專案成本管理計算公式公式
- ABAP計算自動義公式公式
- excel利用rank排名次公式 excel利用公式計算排名Excel公式
- 使用流式計算引擎 eKuiper 處理 Protocol Buffers 資料UIProtocol
- 2 Day DBA-使用基於SQL的管理工具管理資料庫-從客戶端計算機連線到Oracle資料庫SQL資料庫客戶端計算機Oracle
- matchTemplate函式各個方法的計算公式函式公式
- 能用一個公式來計算使用者體驗嗎?公式
- 工齡怎麼計算excel公式精確到月 如何設定工齡計算公式Excel公式
- 【cbo計算公式】No Bind Peeking(五)公式
- 步進電機扭矩計算公式公式
- 徹底瞭解 ab 測試的計算公式公式
- 休閒遊戲的廣告變現LTV計算公式遊戲公式
- 用C語言編寫的公式計算器C語言公式
- PEAR安裝
- MySQL記憶體佔用計算公式MySql記憶體公式
- 【cbo計算公式】Join 選擇率(六)公式
- 【cbo計算公式】CBO基本概念(一)公式
- 【mysql】mysql select中包括計算公式MySql公式
- CBO各種型別成本計算公式型別公式
- 【cbo計算公式】單表選擇率(二)公式
- Photoshop圖層混合模式計算公式大全(轉)模式公式
- Web Mercator投影與反投影計算公式Web公式