新手请教个java计算公式问题

kongjin15 2017-11-08 10:07:43
小弟刚学java不久,有个问题请教各位大侠,万分感激~~
定义了一个list,list的每个元素是个map,有如下key:
c1 c2 c3 c4 formula result
其中 formula是个计算公式,list中每个元素的formula可能不同,例如c1/c2+c3 + c4或者c1/(c2+c3 + c4),现在要遍历这个list将每个元素的计算结果写到result的value中,如果计算公式有除法符号,那么如果除数是0,那么除法运算结果就是0,例如如果c2是0,那么c1/c2+c3 + c4结果就是0 + c3+ c4,如果是c2+c3 + c4 =0,那么c1/(c2+c3 + c4)的结果就是0.
请教各位大侠,这个用java如何实现啊,主要是除数为0的判断不太知道怎么实现,因为formula 是不固定的,可能有多个除号,谢谢各位大侠了!
...全文
255 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
楼上说的都对,但是个人认为除数为0不用处理,直接抛出异常就行了。因为2/0本来就除不尽你还要强行把结果计算成0不是违背数学常识吗
  • 打赏
  • 举报
回复
AlbertLiangzt 2017-11-09
同楼上,不过java只对除数为0(int)验证,不验证double的0.0

	public static void main(String[] args){
		double result = 1;
		int b = 10;
		int a = 0; 
		try {
			result = b/a;
		} catch (Exception e) {
			result = 0;
		}

		System.out.println(result);			//0.0
		System.out.println(5/0.0);			//Infinity
	}
  • 打赏
  • 举报
回复
自由自在_Yu 2017-11-09
先遍历一下每个formula里面有多少个“/”就知道了,然后在找到“/”后面的那个除数,(先判断除数是不是带括号) 判断除数是否为0
  • 打赏
  • 举报
回复
u010385632 2017-11-09
除0会报异常,把代码块try catch后在catch里面将result赋值为0即可
  • 打赏
  • 举报
回复
ZL_LSY 2017-11-09
/0会有异常 抓一下很好处理
  • 打赏
  • 举报
回复
lilili9309 2017-11-09
1楼这种应该就行
  • 打赏
  • 举报
回复
相关推荐
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2017-11-08 10:07
社区公告
暂无公告