新手请教个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 是不固定的,可能有多个除号,谢谢各位大侠了!
...全文
279 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
繁华终归落尽 2017-11-09
  • 打赏
  • 举报
回复
楼上说的都对,但是个人认为除数为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楼这种应该就行

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧