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

  • 相关阅读:
    CF991D Bishwock
    CF1010D Mars rover
    NOIP 2011 计算系数
    SDOI 2008 仪仗队
    浅谈欧拉函数
    CF1249F Maximum Weight Subset
    NOIP 2011 铺地毯
    CF707D Persistent Bookcase
    C++ STL bitset 容器详解
    CF798D Mike and distribution
  • 原文地址:https://www.cnblogs.com/bi-hu/p/13664954.html
Copyright © 2011-2022 走看看