[发明专利]自动计算数值的方法和装置无效
申请号: | 201010616452.4 | 申请日: | 2010-12-30 |
公开(公告)号: | CN102043758A | 公开(公告)日: | 2011-05-04 |
发明(设计)人: | 王丙建;李胜 | 申请(专利权)人: | 畅捷通软件有限公司 |
主分类号: | G06F17/11 | 分类号: | G06F17/11 |
代理公司: | 北京友联知识产权代理事务所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
地址: | 100094 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 自动 计算 数值 方法 装置 | ||
技术领域
本发明涉及公式计算,具体而言,涉及一种自动计算数值的方法和装置。
背景技术
随着应用系统的广泛使用,根据系统提供的计算公式设计器,客户自己设置计算公式,得出相关的结果并加以应用越来越广泛。并且公式的复杂度也越来越高,如何能提供一种比较简单,切实可行的公式解析算法,就显得比较重要。目前计算公式的复杂程度概况描述如下:
1、支持四则运算
2、支持逻辑运算
3、支持比较运算
4、支持公式嵌套公式
解析计算公式主要由以下办法:
1、采用目前主流语言提供的公式引擎解析计算公式,这种算法可以解决一部分客户的业务需求,但对客户要求比较复杂,并且数据来源比较复杂的公式来说,还是很难解决的。
2、采用遍历字符串的方式,获取字符串中的各种运算符号和运算值,根据运算符号的不同,采取递归的算法依次获取计算,得到最终的结果。这种算法可以满足客户的全部业务场景,但对字符串解析要求程度很高,还要用到入栈出栈操作,所有不慎可能导致计算结果错误。
因此,需要一种新的公式计算方式,能够针对复杂的数据进行解析,并能够降低解析的复杂性,防止计算出错。
发明内容
本发明所要解决的技术问题在于,提供一种新的公式计算方式,能够针对复杂的数据进行解析,并能够降低解析的复杂性,防止计算出错。
有鉴于此,本发明提供一种自动计算数值的方法,包括:步骤102,通过解析器,将公式解析为元素和运算符;步骤104,获取所述元素的值;步骤106,使用所述元素的值结合所述运算符进行计算,以获取所述公式的结果。通过该技术方案,将公式解析为元素和运算符后,能够有效率地对公式进行计算。
在上述技术方案中,优选地,在所述步骤102中,通过正则表达式对所述公式进行解析。
在上述技术方案中,优选地,在所述步骤102中,还使用特殊字符替代所述元素,与所述运算符组成算式表达式;在所述步骤106中,将所述元素的值替代所述算式表达式中的所述特殊字母,计算所述算式表达式以获取所述公式的结果。
在上述技术方案中,优选地,所述元素包括常量、参数、函数和/或嵌套的公式,所述运算符包括加、减、乘、除和/或括号。
在上述技术方案中,优选地,在所述步骤104中,在所述元素包括所述嵌套的公式时,将所述嵌套的公式返回所述步骤102。
本发明还提供一种自动计算数值的装置,包括:公式解析模块,将公式解析为元素和运算符;元素取值模块,获取所述元素的值;公式计算模块,使用所述元素的值结合所述运算符进行计算,以获取所述公式的结果。通过该技术方案,将公式解析为元素和运算符后,能够有效率地对公式进行计算。
在上述技术方案中,优选地,所述公式解析模块通过正则表达式对所述公式进行解析。
在上述技术方案中,优选地,所述公式解析模块还使用特殊字符替代所述元素,与所述运算符组成算式表达式;所述公式计算模块将所述元素的值替代所述算式表达式中的所述特殊字母,计算所述算式表达式以获取所述公式的结果。
在上述技术方案中,优选地,所述元素包括常量、参数、函数和/或嵌套的公式,所述运算符包括加、减、乘、除和/或括号。
在上述技术方案中,优选地,在所述元素包括所述嵌套的公式时,所述元素取值模块将所述嵌套的公式返回给所述公式解析模块。
通过以上技术方案,可以实现一种自动计算数值的方法和装置,通过巧用元素分离法把计算公式字符串分为两部分,计算表达式和元素,首先得出元素的值,然后调用计算表达式得到计算公式的最终结果,较简单实用,易于理解和实现,可以快速的解析计算公式并得到准确的结果。
附图说明
图1是根据本发明的一个实施例的自动计算数值的方法的流程图;
图2是根据本发明的一个实施例的自动计算数值的装置的框图;
图3是根据本发明的一个实施例的自动计算数值的装置的解析过程示意图;
图4是根据本发明的一个实施例的自动计算数值的装置的计算过程示意图;
图5是根据本发明的一个实施例的自动计算数值的方法的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于畅捷通软件有限公司,未经畅捷通软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010616452.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种导风格栅及窗式空调
- 下一篇:一种基于物联网的空调百叶智能控制装置及系统