[发明专利]浮点数计算精度处理方法、系统、介质及设备有效
申请号: | 202110707266.X | 申请日: | 2021-06-24 |
公开(公告)号: | CN113326048B | 公开(公告)日: | 2023-01-17 |
发明(设计)人: | 邓力;宋金泽 | 申请(专利权)人: | 上海万向区块链股份公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/71;G06F9/30 |
代理公司: | 上海段和段律师事务所 31334 | 代理人: | 李佳俊;郭国中 |
地址: | 200086 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 浮点 计算 精度 处理 方法 系统 介质 设备 | ||
本发明提供了一种浮点数计算精度处理方法、系统、介质及设备,包括:步骤1:启动babel编译器对JS代码进行编译处理,将JS代码转换为抽象语法树形态;步骤2:对抽象语法树进行遍历,定位每个四则运算的代码节点,获取四则运算语句的左、右节点内容,根据运算符类型及左右节点的属性值创建补丁代码的抽象语法树,将新创建的抽象语法树替换掉当前定位到的四则运算代码节点的抽象语法树;步骤3:根据修改替换后的抽象语法树生成新JS代码,进行无需精度计算的四则运算。本发明将四则运算相关代码转换为处理过运算精度的补丁代码,提高开发效率的同时能最大限度地降低因为人为犯错或疏忽来带的风险。
技术领域
本发明涉及数据处理技术领域,具体地,涉及一种浮点数计算精度处理方法、系统、介质及设备。尤其地,涉及一种基于babel编译器的JS浮点数计算精度处理方法。
背景技术
目前,越来越多的应用基于JavaScript技术栈开发,金融类型的应用往往在前端会涉及到较多的包含小数位的金额计算,由于JavaScript中的数字类型基于IEEE 754标准的双精度浮点型实现,双精度浮点型数字在运算时存在精度丢失的问题。因此,计算精度的处理是在涉及JavaScript浮点数计算的项目中不得不考虑的一环。
常见的处理策略如下:1.提前封装好专门用于处理浮点数四则运算精度对应的加、减、乘、除工具函数,其内部处理运算精度的原理为:在JavaScript支持的整数有效范围内,整数的运算精度不会出现问题,因此,将小数扩大10的相应倍数从而将小数转换为整数进行运算,再将整数运算结果转换回包含小数位的数值。2.在代码中涉及到浮点数运算的位置使用工具函数替代JavaScript原生代码进行计算。
通过编写形如:add(0.1,0.2)这类的补丁代码,来替代直接书写形如:0.1+0.2这类的原生JavaScript计算代码。
但是这种解决方案效率低、易出错,且给开发者来带来了一定的心智负担。并且在需要编写复杂的浮点数混合四则运算代码时,存在函数调用嵌套过深且编码繁琐的问题,极易因为人为的疏忽或者纰漏导致计算结果异常。
专利文献CN104199831A(申请号:CN201410373530.0)公开了一种信息处理方法及装置;所述方法包括:基于第一策略识别出SQL代码中的基本元素;对从所述SQL代码中解析出的基本元素进行组合操作,得到SQL语句,构建语法树;遍历所述语法树中的SQL语句,基于所遍历的SQL语句中的基本元素的类型,以及所述基本元素的类型与节点的对应关系,为所遍历的SQL语句中的基本元素对应构建节点,得到所述语法树的中间语言描述;基于所述语法树的中间语言描述,构建对应所述SQL代码的数据流图。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种浮点数计算精度处理方法、系统、介质及设备。
根据本发明提供的浮点数计算精度处理方法,包括:
步骤1:启动babel编译器对JS代码进行编译处理,将JS代码转换为抽象语法树形态;
步骤2:对抽象语法树进行遍历,定位每个四则运算的代码节点,获取四则运算语句的左、右节点内容,根据运算符类型及左右节点的属性值创建补丁代码的抽象语法树,将新创建的抽象语法树替换掉当前定位到的四则运算代码节点的抽象语法树;
步骤3:根据修改替换后的抽象语法树生成新JS代码,进行无需精度计算的四则运算。
优选的,在替换抽象语法树前后,通过webpack对JS代码进行打包处理,并对抽象语法树进行备份。
优选的,使用访问者模式对抽象语法树进行遍历,对所有的签名和二进制表达式节点进行访问,得到四则运算符类型。
优选的,所述运算符类型包括:+运算符、+=运算符、-运算符、-=运算符、*运算符和/运算符;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海万向区块链股份公司,未经上海万向区块链股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110707266.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:水面垃圾收集器行进机构
- 下一篇:熔断配置修改方法、装置、设备及可读存储介质