设为首页 加入收藏

TOP

Java高精度四则运算(无括号限制)(三)
2015-11-10 13:44:50 来源: 作者: 【 】 浏览:17
Tags:Java 高精度 四则 运算 括号 限制

? ? ? ? String vs[] = value.split("\\/");
? ? ? ? BigDecimal v1 = map.get(vs[0]);
? ? ? ? BigDecimal v2 = map.get(vs[1]);
? ? ? ? BigDecimal x = v1.divide(v2);
? ? ? ? map.remove(vs[0]);
? ? ? ? map.remove(vs[1]);
? ? ? ? String uuid = getUUID();
? ? ? ? map.put(uuid, x);
? ? ? ? str = str.replace(value, uuid);
? ? ? ? return str;
? ? }
}


最近在开发公司的绩效系统,老板又很抠门,不想购买市面上的绩效系统。。于是乎,苦逼的我又开始了苦逼的编程……


系统里面涉及到报表,而各员工间的绩效以及实发工资的算法每隔一段时间就会更新,所以不可能做到将算法写进源码编译,需要报表公式进行计算(当然,报表公式系统需要另行开发,这里不描述)。


以上是JAVA代码,其思想是将公式字中的参数当作字符串来看待,并不是当作纯粹的数字。每次运算时,只进行二元运算,运算之后将数据保存,再删除原数据表中的数据。如此循环,无需考虑括号的限制了。


在实现代码时,考虑了直接使用float或者是double类型,但是在最终显示结果是,两个类型精度都会产生精度上的丢失,所以最终考虑使用BigDecimal类型,也算是做长期运行考虑吧。


其中有很多需要优化的地方,敢兴趣的朋友可以留言交流……


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle 发布 Java 模块系统状态报.. 下一篇Python实现控制台中的进度条

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: