9.16动手又动脑

1.以下代码的输出结果是什么?

int X=100; int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

为什么会有这样的输出结果?

输出结果为:

X+Y=100200
300=X+Y

原因:

因为双引号在输出中意思为直接输出,而+x+y为依次输出x,y。所以输出结果为x+y=100200。而第二个首先为x+y意思是输出这个表达式,之后+“=x+y”则为直接输出引号内的内容。所以输出结果位300=x+y。

 2.请运行以下代码

 

 

0.05 + 0.01 = 0.060000000000000005
1.0 - 0.42 = 0.5800000000000001
4.015 * 100 = 401.49999999999994
123.3 / 100 = 1.2329999999999999

看到这样的输出很意外

原因:ava中十进制与二进制转化时存在问题,double类型的数值占   用64bit,64个二进制数,除去最高位表示正负符号的位,在最低   位上一定会与实际数据存在误差,就是给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来,而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到数学上正确的结果。

4.

仔细阅读示例: EnumTest.java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗?

运行结果:

false
false
true
SMALL
MEDIUM
LARGE

第一个输出是判断s和t是否相等,不相等所以是false

第二是输出是判断是否是原始类型,不是原始类型所以是false

第三个输出判断是否从字符串转换,所以是true

最后是从小到中在到达循环输出所以是SMALL
                                                           MEDIUM
                                                           LARGE

 

转载于:https://www.cnblogs.com/2940500426yingxin/p/11551884.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值