美文网首页
计算机的舍入方法

计算机的舍入方法

作者: Rumbles | 来源:发表于2018-03-01 10:20 被阅读110次

    计算机精度不够的时候进行的舍入操作

    0舍1入 末位恒置1

    main()
    {
                    float a;
                    double b;
                    a = 123456.789e4;
                    b = 123456.789e4;  // 乘以e的4次方
                    printf(“%f/n%f/n”,a,b);
    }
    
    运行结果如下: 
    1234567936.000000 
    1234567890.000000
    
    那么计算机是怎么计算的呢?为什么float是那样子的呢?
    
    首先计算机如何存储浮点数  1234567890 转化为 二进制
    
    0100  1001  1001  0110  0000  0010  1101  0010 
     =
     1.00  1001  1001  0110  0000  0010  1101  0010 * 2的30次
    
    去掉1 那么计算机只会保存 00  1001  1001  0110  0000  0010  1101  0010
    
    可是 M只可以保存23位 那么 需要进行舍入操作   舍入 后7位  101  0010 进 1 那么就会 是的精度 多了  2的8次 减去 101  0010= 82  所以就增加了46
    

    参考:
    http://blog.csdn.net/laeen/article/details/51194684

    相关文章

      网友评论

          本文标题:计算机的舍入方法

          本文链接:https://www.haomeiwen.com/subject/ovsixftx.html