zoukankan      html  css  js  c++  java
  • 关于double精确度的简单问题

    (1)测试TestDouble.java结果 

     

    结果:如图,使用double类型的数据进行运算时结果是不准确的。

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

    (2)测试TestBigDecimal.java结果

    结果:如图,用字符串类型计算的数据是对的,而double类型依旧是不对的。

    原因:对于double型,小数点后面是0的话,精度就是0;小数点后面不是0,则取决于整数位的位数,整数位越多,精度越小;当整数位接近15位时,精度就       趋于0,再多1位数据可能开始溢出(具体情况取决于double类型的数值表示)。

          对于字符串类型的构造函数,小数点后面有几位,精度就是几位,而且几乎没有位数限制。

    (3)区分连接符与加号

    结果:先输出字符串则后面也是字符串形式;先输出加法运算则正常运算。

    原因:在System.out.println()中,如果在string字符串后面是+和变量,会把变量转换成string类型,加号起连接作用,然后把两个字符串连接成一个新的       字符串输出;

          如果先有变量的加减运算再有字符串,那么会从左到右先计算变量的加减,然后再与后面的string结合成一个新的字符串。也就是说加号只有在两个         string类型或者其中一个是string类型的时候才起到连接作用,否则仍然是运算符。

  • 相关阅读:
    [转]使用Composer管理PHP依赖关系
    Php环境下载(PHPNow)安装
    精美的 ( Android, iPhone, iPad ) 手机界面设计素材和线框图设计工具
    八款强大的jQuery图片滑块动画插件
    JavaScript prototype.js提升JavaScript开发效率
    JS Message 网页消息提醒
    Vis.js图表插件
    动态算法学习
    GPS功能:百度路书自定义【轨迹回放】
    CSS美化页面滚动条
  • 原文地址:https://www.cnblogs.com/YXSZ/p/9749582.html
Copyright © 2011-2022 走看看