• 课后作业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型,此时默认了转化,有了此结果;第二个事简单输出,没有让计算器产生“误解”。

     

     

     

     

     

  • 相关阅读:
    POJ--2112--Optimal Milking【Floyd+Dinic+二分答案】
    HTML5之WEB Storage
    java多线程具体总结
    CSU 1541 There is No Alternative (最小生成树+枚举)
    Blade
    数据模型封装演示样例
    Java中接口和抽象类的比較
    句子逆序
    王立平--split字符串切割
    UVA 12538 Version Controlled IDE 解题报告
  • 原文地址:https://www.cnblogs.com/yanghanyu981005/p/7635443.html
Copyright © 2020-2023  润新知