课程作业02

本文探讨了Java中变量的同名屏蔽原则,通过实例解释局部与全局变量的使用优先级。同时,分析了Double类型数值运算为何无法达到数学上的精确结果,归因于64位精度限制。

一:

Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就像本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。

对于同名变量,若变量是在局部内定义并使用,那么将不适用全局变量,而使用局部变量的值。

若变量是在全局定义并使用,那么将屏蔽局部变量,而使用全局变量的值。

二:

运行以下代码:

package JavaApp;

public class java1 {

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
}

运行结果:

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

 

所以说为什么double类型的数值进行运算得不到“数学上精确”的结果?

因为double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果.

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

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

转载于:https://www.cnblogs.com/liyuchao/p/9750764.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值