zoukankan      html  css  js  c++  java
  • 四舍五入算法C语言

    四舍五入算法-C语言

    四舍五入算法:如果要求精确到小数第N位,则需要对N+1进行运算,方法是将该 数 乘以  10^N+1  次方后 + 5,然后除以10并强制转换成长整形(Long)型,再将该数除以10的N次方,同时转换为浮点型(Double\float)。

    步骤解析:1.将该 数 乘以  10^N+1  次方后 + 5 。因为保留N位小数 且 要把最后一位小数四舍五入,所以要乘N+1次方后在加 5 ,乘N+1次方是为了能保留N位小数且腾出最后一位小数进行四舍五入,加5是为了能把最后一位小数四舍五入。

    步骤解析:2. 然后除以10并强制转换成长整形(Long)型。

    因为四舍五入后需要把已四舍五入哪位舍去,则需要除10最后的转换为long型是为了能把小数点后面已四舍五入哪位去处(去尾)。这里 转换为long型需要一个临时变量支撑,不要转换为int型,因为怕int装不下那么大的数。

    步骤解析:3. 再将该数除以10的N次方,同时转换为浮点型(Double\float)。因为要保证小数点回到原来的保留位,所以要除以10的N次方(加 .0 ),然后把他转换成浮点(Double\float)就完成了。

    例子:1234.567保留后两位小数点 且 四舍五入。

    代码如下:

    /*
    *时间:    2020年9月14日 09:05:00
    *例: 1234.567保留后两位小数点 且 四舍五入。
    *核心:   乘除步骤 和 转换步骤
    */
    #include<stdio.h>
    int main()
    {
        double f = 1234.567;
        long temp;
        temp = (long)((f*1000)+5)/10;  //乘10n+1次方 且 加5 再 除 10 并 转换为LONG型
        f = (double)(temp / 100.0);    // 除10n次方 并 转换为浮点型。★这里要是100.0 因为temp是long型,若不加则错★
        printf("%lf",f);
    
    return 0;
    }

    运行结果:

    2020年9月14日

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/13664954.html

  • 相关阅读:
    移动web前端高效开发实践 读书笔记
    前端开发最佳实践-读书笔记
    frontend-Tips
    匿名函数的几种写法
    12个用得着的JQuery代码片段(转)
    tesseract-ocr 学习笔记(比网上的中文说明都详细)
    关于大数据的思考
    单片机实验的小记录~~PWM
    组建Redis集群遇到`GLIBC_2.14' not found和ps -ef 不显示用户名
    柔性数组(Redis源码学习)
  • 原文地址:https://www.cnblogs.com/bi-hu/p/13664954.html
Copyright © 2011-2022 走看看