[发明专利]运算处理方法、系统、装置以及计算机可读介质在审
申请号: | 201811465185.8 | 申请日: | 2018-12-03 |
公开(公告)号: | CN111258547A | 公开(公告)日: | 2020-06-09 |
发明(设计)人: | 李永 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F7/57 | 分类号: | G06F7/57 |
代理公司: | 北京成创同维知识产权代理有限公司 11449 | 代理人: | 刘静 |
地址: | 100195 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运算 处理 方法 系统 装置 以及 计算机 可读 介质 | ||
本发明实施例提供一种运算处理方法、系统、装置以及计算机可读介质。所述方法采用计算引擎进行数值运算,所述计算引擎包括:接收第一表达式;将所述第一表达式分成多个计算单元,每个计算单元包括左因子,运算符和右因子;将所述多个计算单元按照包含的运算符的优先级排序;按照优先级从高到低的顺序分多次计算所述多个计算单元,且在每次计算之前,替换本次计算的计算单元左和/或右因子,直到基于最后计算的计算单元得到最终结果值;输出所述最终结果值。本发明实施例按照运算符的优先级分多次对计算单元进行计算,使整个计算过程变得非常直观,便于研发人员快速定位问题。
技术领域
本发明涉及计算机技术领域,具体涉及一种运算处理方法、系统、装置以及计算机可读介质。
背景技术
在金融领域微小的差错都会带来很大的损失。当发生差错时,工作人员往往需要花费大量的时间定位问题。这是因为,在代码层面,JAVA系统多采用BigDecimal对象处理高精度的四则运算。BigDecimal虽然支持任意精度,任意长度的浮点数运算,但是采用方法代替运算符,其计算过程并不直观,为了使日志变得更加直观,研发人员需要为日志添加描述性语言。这同样给研发人员带来工作量,而且也不能确保每个研发人员都按照设定的规范输出日志。
由此,如何在不增加工作量的情况下,使研发人员能够快速定位计算过程中出现的问题,是现有技术中一项值得解决的问题。
发明内容
有鉴于此,本发明实施例提供一种运算处理方法、系统、装置以及计算机可读介质,以解决研发人员对于计算过程中出现的问题定位不易的问题。
根据本发明实施例的第一方面,提供一种运算处理方法,包括:
接收第一表达式;
将所述第一表达式分成多个计算单元,每个计算单元包括左因子、运算符和右因子;
将所述多个计算单元按照包含的运算符的优先级排序;
按照优先级从高到低的顺序分多次计算所述多个计算单元,且在每次计算之前,替换本次计算的计算单元的左和/或右因子,直到基于最后计算的计算单元得到最终结果值;
输出所述最终结果值。
可选地,还包括:
接收第二表达式;
检测所述第二表达式中的括号;以及
在所述第二表达式包含至少一个括号时,以括号作为分隔符,将所述第二表达式转换为至少两个第一表达式。
可选地,还包括:通过递归计算得到所述第二表达式的最终结果值。
可选地,还包括:为每个计算单元建立数据结构,所述数据结构包括左单元、左因子、运算符、右因子、右单元。
可选地,还包括:采用链表存储多个所述数据结构。
可选地,还包括:每次在计算一个计算单元之前,如果其对应的数据结构的左单元不为空,则采用相邻的左侧的计算单元的结果值替换其对应的数据结构的左因子。
可选地,还包括:每次在计算一个计算单元之前,如果其对应的数据结构的右单元不为空,则采用相邻的右侧的计算单元的结果值替换其对应的数据结构的右因子。
可选地,采用BigDecimal对象计算每个计算单元。
可选地,所述第一表达式为字符串,所述将所述第一表达式分成多个计算单元包括:
将字符串分成由数值和运算符组成的字符串数组;
将所述字符串数组中相邻的数值和运作符组成所述多个计算单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811465185.8/2.html,转载请声明来源钻瓜专利网。