zoukankan      html  css  js  c++  java
  • c++ / % 四舍五入 向上取整ceil 向下取整floor

     / % 四舍五入 向上取整ceil 向下取整floor

    #include <math.h> double floor(double x); 

    float floorf(float x); 
    long double floorl(long double x);
    
    

    double floor(double x);

    double ceil(double x);


    使用floor函数。floor(x)返回的是小于或等于x的最大整数。
    如:     floor(10.5) == 10    floor(-10.5) == -11


    使用ceil函数。ceil(x)返回的是大于或等于x的最小整数。
    如:     ceil(10.5) == 11    ceil(-10.5) ==-10

        
    floor()是向负无穷大舍入,floor(-10.5) == -11;
    ceil()是向正无穷大舍入,ceil(-10.5) == -10

     1. /

        //Test "/"
        cout << "Test "/"!" << endl;
        cout << "7   / 2   = " << 7/2 << endl;      //3
        cout << "7   / 2.0 = " << 7/2.0 << endl;    //3.5
        cout << "7.0 / 2   = " << 7.0/2 << endl;    //3.5
        cout << "7.0 / 2.0 = " << 7.0/2.0 << endl; //3.5
        cout << "7   / 3   = " << 7/3 << endl;      //2
        cout << endl;

    2. %
        //Test "%"
        cout << "Test "%"!" << endl;
        cout << "9   % 3   = " << 9%3 << endl;      //0
        cout << "9   % 4   = " << 9%4 << endl;      //1
        //cout << "9.0 % 3   = " << 9.0%3 << endl;
        //cout << "9   % 3.0 = " << 9%3.0 << endl;
        cout << endl;

    3. 四舍五入
        //Test round()
        cout << "Test "四舍五入"!" << endl;
        double dRoundA = 1.4;
        double dRoundB = 1.6;
        double dRoundLowA = -1.4;
        double dRoundLowB = -1.6;
        double dRoundLowC = 0.0;
        cout << dRoundA << " = " << RoundEx(dRoundA) << endl;         //1
        cout << dRoundB << " = " << RoundEx(dRoundB) << endl;         //2
        cout << dRoundLowA << " = " << RoundEx(dRoundLowA) << endl;   //-1
        cout << dRoundLowB << " = " << RoundEx(dRoundLowB) << endl;   //-2
        cout << dRoundLowC << " = " << RoundEx(dRoundLowC) << endl;   //0
        cout << endl;

    double RoundEx(const double& dInput)
    {
        double dIn = dInput;
        if (dInput >= 0.0)    //???
        {
            return int(dIn + 0.5);
        } 
        else
        {
            return int(dIn - 0.5);
        }
    }

    4. ceil() 向上取整
        //Test ceil() 向上取整
        cout << "Test ceil() 向上取整!" << endl; 
        cout << "ceil 1.2 = " << ceil(1.2) << endl;      //2
        cout << "ceil 1.8 = " << ceil(1.8) << endl;      //2
        cout << "ceil -1.2 = " << ceil(-1.2) << endl;    //-1
        cout << "ceil -1.8 = " << ceil(-1.8) << endl;    //-1
        cout << "ceil 0.0 = " << ceil(0.0) << endl;      //0
        cout << endl;

    5. floor() 向下取整
        //Test floor() 向下取整
        cout << "Test floor() 向下取整!" << endl;
        cout << "floor 1.2 = " << floor(1.2) << endl;    //1
        cout << "floor 1.8 = " << floor(1.8) << endl;    //1
        cout << "floor -1.2 = " << floor(-1.2) << endl; //-2
        cout << "floor -1.8 = " << floor(-1.8) << endl; //-2
        cout << "floor 0.0 = " << floor(0.0) << endl;    //0
        cout << endl;

  • 相关阅读:
    30行js让你的rem弹性布局适配所有分辨率(含竖屏适配)(转载)
    JavaScript事件流原理解析
    Java中this和super的用法和区别
    Java多态面试题案例几解题思路
    Java多态的向上转型和向下转型
    Java方法的重载和重写
    Java冒泡具体的原理,以及下标的变化
    Java中的冒泡排序和选择排序
    使用Java实现对一个数组的增删改查以及初始化
    Java中构造函数传参数在基本数据类型和引用类型之间的区别
  • 原文地址:https://www.cnblogs.com/yxh-amysear/p/8433873.html
Copyright © 2011-2022 走看看