2-14编程联系

2-14编程联系

public class HelloWorld {
    public static void main(String[] args) {
        //定义float类型变量,赋值为88.99
		float f1 = new Float(88.99);
		//将基本类型转换为字符串
		String one = String.valueOf(f1);                            
		//打印输出
		System.out.println("f1转换为String型后与整数20的求和结果为:"+f1+20);
		//定义String类型变量,赋值为"188.55"
		String str = "188.55";
	    // 将字符串转换为基本类型double
		Double two = Double.valueOf(str);             
		//打印输出
		System.out.println("str转换为double型后与整数20的求和结果为:"+two+20);
	}
}

老师,为什么我的最后这个two+20必须要打上括号才能显示208.55,不打括号就是108.5520,是本来就应该这样还是我哪里写的不对?如果不应该是这样的话,有没有什么办法可以不用加括号?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
提问者 请你吃灌汤包 2017-11-25 08:21:48
慕粉0907203 2017-11-24 18:29:06

把你代码贴出来吧,具体看下你问的是什么意思

  • 提问者 请你吃灌汤包 #1
    截图我发在上面了,回复里面不能回复图片,麻烦帮忙看一下,谢谢
    2017-11-25 08:22:34
  • 好帮手慕珊 回复 提问者 请你吃灌汤包 #2
    这个是因为字符串连接运算的问题。加法运算从左到右执行。two+20都是数值类型会进行普通加法运算,然后和字符串进行加法运算就是字符串连接运算了,连接后的结果是字符串,再和后面的内容进行加法运算就都是字符串连接了。所以最后的two+20要用小括号加起来才能先运算。
    2017-11-26 11:26:15
  • 提问者 请你吃灌汤包 回复 好帮手慕珊 #3
    哦哦,明白了,谢谢
    2017-11-26 23:03:56
慕粉0907203 2017-11-24 11:53:46

这里的区别不在于输出吧,输出的值是啥就输出啥,区别在于加号运算符的使用,当字符串+数值结果为字符串,数值+数值的结果为数值

  • 提问者 请你吃灌汤包 #1
    如果把two+20放在最前面输出的就是相加以后的,那也就是说输出识别的是输出内容靠前的对象的数据类型?
    2017-11-24 16:57:34
  • 提问者 请你吃灌汤包 #2
    two+20放最前面并且不打括号,输出的也是相加后的
    2017-11-24 16:58:08
  • 提问者 请你吃灌汤包 #3
    那数值加字符串呢?编译器里面我测试了一下,字符串加数值,和数值加字符串不一样
    2017-11-24 17:28:24
慕粉0907203 2017-11-21 18:30:52

最后一句打印输入的"str转换为double型后与整数20的求和结果为:"是字符串,当two+20不加括号是是三个字符串连接的结果;当two+20加括号则先进行括号中的two+20运算,运算结果与前面的字符串连接输入。

  • 提问者 请你吃灌汤包 #1
    我刚才试了一下,不加输出汉字,只打印输出two+20就是直接相加的结果,也就是说打印输出是看类型的,那老师这个打印输出的输出规则是怎么样的呢?为什么会根据"内容"识别为字符串连接输出?
    2017-11-24 10:46:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师