为了账号安全,请及时绑定邮箱和手机立即绑定

求问bug : 1.2+1.2=2 两个带小数点相加结果出错,应该怎么解决

求问bug : 1.2+1.2=2  两个带小数点相加结果出错,应该怎么解决

一个有小数点,一个没小数点的都正确

两个数都带小数点 结果会算错

正在回答

2 回答

你以前的计算结果是不是2+2=4.0;   你注释掉以后是不是所有的运算结果都带小数点了,你这样是不对滴。


//if(s1.contains(".")&&s2.contains(".")){   这句话应该这样写//if(!s1.contains(".")&&!s2.contains("."))


如果s1不是小数,并且s2不是小数,返回整数,否则(任意一个或者两个有小数)返回小数。

而你写的是如果s1是小数,并且s2是小数,返回整数,否则(任意一个或者两个是整数)返回小数

0 回复 有任何疑惑可以回复我~

貌似会了 

注释掉一段就可以正确计算了

然后捣鼓怎么把两个相加结果出现小数点后n位不太对的情况


public static String format2(double value) {


   DecimalFormat df = new DecimalFormat("0.00");

   df.setRoundingMode(RoundingMode.HALF_UP);

   return df.format(value);

 }

这一块貌似能实现四舍五入

编程小白出错勿喷~~~~

String s1 = exp.substring(0,exp.indexOf(" "));//运算符前面的字符串
		String op = exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2 );
		String s2 = exp.substring(exp.indexOf(" ")+3);
		if(!s1.equals("")&&!s2.equals("")){
			double d1 = Double.parseDouble(s1);
			double d2 = Double.parseDouble(s2);
			if(op.equals("+")){
			result = d1 + d2;	
			}else if(op.equals("-")){
				result = d1 - d2;	
			}else if(op.equals("×")){
				result = d1 * d2;	
			}else if(op.equals("÷")){
				if(d2==0){
					result=0;
				}else{
				result = d1 / d2;
				}
				}
			//if(s1.contains(".")&&s2.contains(".")){
		//		int r = (int)result;
		//		et_input.setText(r+"");
		//	}else{
			result = Double.parseDouble(format2(result));
			
				et_input.setText(result+"");
	//		}
			


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312584    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

求问bug : 1.2+1.2=2 两个带小数点相加结果出错,应该怎么解决

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信