课后作业02-2-课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。...

1、   运行代码

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

double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。

3、在构建BigDecimal对象时应使用字符串而不是double数值,否则,仍有可能引发计算精度问题。(为什么会这样呢?)

double不能准确的代表BigDecimal(String) 16位有效数以上的数字,在使用BigDecimal时,应用*、/构造器创建对象才有意义。BigDecimal所创建的对象不能使用传统的等算术运算符直接对其对象进行数学运算,而必须调用相对应的方法。方法中的参数必须是BigDecimal的对象。

4、   以下代码输出结果及原因

            int X=100;

             int Y=200;

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

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

"X+Y="在前时,默认把X,Y转化为String型,"X+Y="使编译器认为X,Y是String型,System.out.println()本身的参数默认为String型,此时默认了转化,有了此结果;第二个事简单输出,没有让计算器产生“误解”。

 

 

 

 

 

转载于:https://www.cnblogs.com/yanghanyu981005/p/7635443.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值