标签:动手 进制 第一个 问题 类型 数值 strong 原因 代码
一.
课后问题:
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.105*100="+(4.105*100));
System.out.println("123.3/100="+(123.3/100));
运行结果:
0.05+0.01=0.060000000000000005
1.0-0.42=0.5800000000000001
4.105*100=410.50000000000006
123.3/100=1.2329999999999999
原因:因为计算机在运算时需要先将10进制的数转换为2进制的数,但是在转换过程中2进制的并不能完全等于2的次的和
,有时只能取一个近似的值,所以double类型的数在运算时会出现一些误差。只有在这个数值完全等于2的次方的和时才
能够没有误差。
二。
课后问题:
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
原因:因为上边的+起到的字符串连接符的作用,并没有进行运算
下边的第一个+起的作用是 运算符 后一个+起到的字符串连接符的作用
这这两段代码中 +起到了不同的作用 所以输出结果不同
标签:动手 进制 第一个 问题 类型 数值 strong 原因 代码
原文地址:http://www.cnblogs.com/shyshy/p/7636972.html