使用Pear的RPN庫處理工資計算公式

2021-04-14 10:10:58 字數 1891 閱讀 7020

工資系統中通常都有乙個工資計算公式的定義。例如 實發=應發-應扣 等等。要計算這樣的表示式,傳統的方法就是用逆波蘭表示式解析它。

下面介紹乙個簡單的方法來實現計算。

使用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() 等等。

使用Pear的RPN庫處理工資計算公式

工資系統中通常都有乙個工資計算公式的定義。例如 實發 應發 應扣 等等。要計算這樣的表示式,傳統的方法就是用逆波蘭表示式解析它。下面介紹乙個簡單的方法來實現計算。使用php的pear庫中的rpn.php。用法如下 include include pear rpn.php expression 2 3...

使用Pear的RPN庫處理工資計算公式

工資系統中通常都有乙個工資計算公式的定義。例如 實發 應發 應扣 等等。要計算這樣的表示式,傳統的方法就是用逆波蘭表示式解析它。下面介紹乙個簡單的方法來實現計算。使用php的pear庫中的rpn.php。用法如下 include include pear rpn.php expression 2 3...

使用Pear的RPN庫處理工資計算公式

工資系統中通常都有乙個工資計算公式的定義。例如 實發 應發 應扣 等等。要計算這樣的表示式,傳統的方法就是用逆波蘭表示式解析它。下面介紹乙個簡單的方法來實現計算。使用php的pear庫中的rpn.php。用法如下 include include pear rpn.php expression 2 3...