`
happmaoo
  • 浏览: 4549069 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用Pear的RPN库处理工资计算公式

阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

工资系统中通常都有一个工资计算公式的定义。例如 实发=应发-应扣 等等。要计算这样的表达式,传统的方法就是用逆波兰表达式解析它。

下面介绍一个简单的方法来实现计算。

使用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


分享到:
评论

相关推荐

    Qt-RPN算法计算机

    逆波兰表示法是一种数学表达式表示方式,它不使用括号,而是利用栈的数据结构来处理运算符和操作数的关系,简化了表达式求值的过程。 首先,我们来详细了解一下Qt框架。Qt是一个跨平台的应用程序开发框架,广泛应用...

    字符串转换为计算公式的若干种方法

    从给定的文件标题“字符串转换为计算公式的若干种方法”及描述“个人收集的几种将字符串表达式转换为计算公式的方法”中,我们可以看出文章主要探讨的是如何将文本形式的数学表达式(字符串)转化为可以进行计算的...

    RPN.zip_rpn java

    在 `RPN.java` 文件中,可能包含了这些功能的实现,包括解析中缀表达式,将中缀表达式转换成 RPN,以及使用 RPN 进行计算的函数。文件可能包含了一些关键类和方法,比如 `RPNConverter` 类,其中 `convertToRPN` ...

    RPN定义与缺陷等级划分

    在实际应用中,RPN可以帮助团队有效地分配资源,优先处理那些最有可能对业务产生严重影响的问题。通过持续监控和优化RPN值,可以提升产品的质量和用户满意度,减少因缺陷导致的损失。同时,RPN也是质量管理体系中...

    rpn.js:计算波兰语反向表示法

    总之,`rpn.js`是一个用于处理和计算波兰语反向表示法的JavaScript库,它利用栈数据结构和解析算法实现RPN表达式的求值,提供了易于使用的API和良好的错误处理机制。这个库对于需要在JavaScript环境中进行高效数学...

    SiamRPN.zip

    SiamRPN的出现解决了传统跟踪方法中计算复杂度高、响应速度慢等问题。它采用了一种Siamese网络结构,这种结构由两个共享权重的分支构成,分别处理模板图像(初始帧的目标)和搜索区域图像(当前帧的潜在目标位置)。...

    LocalGitHub-master.zip_RPN c#_rpn

    6. **用户交互**:为了让用户能够输入RPN表达式,可以使用C#的`Console.ReadLine()`方法获取用户输入,然后调用解析和计算功能。 7. **单元测试**:为了验证RPN计算器的正确性,可以使用C#的`Microsoft.Visual...

    GA-RPN.pdf

    通过减少不必要的锚点和计算,GA-RPN在保持召回率的同时,大幅度提升了检测速度,尤其在处理大型数据集(如COCO)时的表现令人瞩目。 GA-RPN的应用还延伸到了无锚点(Anchor-Free)的检测方法,通过相关方法如...

    (RegionProposal Network)RPN网络结构及详解 - 凹酱的DEEP LEARNING - CSDN博客1

    在 RPN 中,我们使用 SOFTMAX 函数来计算每个 anchor 的概率。具体来说,我们首先计算每个 anchor 的特征向量,然后使用 SOFTMAX 函数来计算每个 anchor 的概率。 我们将每个 anchor 分配一个二进制的标签(前景或...

    RPN.rar_RPN calculator

    反波兰计数法(Reverse Polish Notation,RPN)是一种计算表达式的算法,它不需要括号,运算符位于它们的操作数之后。RPN计算器的工作原理是利用栈数据结构来处理运算。在这个“RPN.rar”压缩包中,包含了实现RPN...

    rpn.zip_rpn

    通过学习RPN算法,我们能够加深对数据结构和算法的理解,增强解决复杂问题的能力,同时,在实际编程中,也能更加高效地处理表达式计算和编译器设计等方面的问题。因此,无论是在学术研究,还是在工程实践中,理解和...

    SiamRPN讲解.pptx

    而在SiamRPN中,直接预测目标框的位置,简化了计算过程。 - **损失函数**: - **分类损失**:采用交叉熵损失(Cross-Entropy Loss),用于判断候选区域是否包含目标。 - **回归损失**:使用平滑L1损失(Smooth L1 ...

    SiamRPN论文翻译.docx

    总的来说,SiamRPN 提供了一种新的视角来处理目标跟踪问题,通过结合深度学习、孪生网络和RPN的概念,它成功地在实时性和准确性之间找到了一个平衡点,为后续的跟踪算法研究提供了有价值的参考。

    ios RPN 计算器 源代码

    例如,对于表达式 "2 + 3 * 4",在RPN表示法中是 "2 3 4 *",先计算 3 和 4 的乘积,然后将结果与 2 相加。这种表示法在计算时简化了解析过程,使得程序设计更为简洁。 在iOS开发中,这个源代码可能包含以下关键...

    siamrpn.zip

    本模型是目标跟踪最新的siamrpn网络模型 下载后请将 model.pth 放入\siamrpn\experiments\siamrpn_r50_l234_dwxcorr 中 model.pth 下载地址 https://cloud.189.cn/t/2UruiiuI3ANb

    SiamRPN模型.rar

    《SiamRPN模型及其应用解析》 在计算机视觉领域,目标跟踪是一个至关重要的任务,它涉及在视频序列中连续定位和识别特定对象。SiamRPN(Siamese Region Proposal Network)是一种高效且准确的目标跟踪算法,因其...

    RPN计算器 java代码

    RPN计算器 Program Input Each line of the input file (prob12.in) contains a series of numbers and operators. The program must evaluate these lines as RPN expressions. All tokens are separated by one ...

    RPN.rar_rpn

    5. **正则表达式**:可以使用C#的正则表达式库来帮助识别和处理表达式中的数字和运算符,提高处理效率。 6. **递归下降解析(Recursive Descent Parsing)**:这是一种常见的解析技术,可以用来构建表达式树,逐层...

    RPN_calculator_gameixh_RPN_calculator_

    RPN(Reverse Polish Notation,逆波兰表示法)计算器是一种高效、节省计算资源的计算工具,尤其适合在资源有限的环境中使用。它不使用括号,而是通过后缀表达式来执行计算。在这个项目中,"gameixh_RPN_calculator_...

Global site tag (gtag.js) - Google Analytics