课程作业02

一:

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

猜你喜欢

转载自www.cnblogs.com/liyuchao/p/9750764.html