精华内容
下载资源
问答
  • C++ 整数除法保留小数

    万次阅读 2019-04-23 10:28:11
    整数除法用 “/”的话得到的是一个整数(得到小数的话自动去掉小数位只保留整数位), 所以这里要得到实际除出来的数的话, 先将两个数转化为double类型,再进行“/”除法 。 至于要 规定输出保留多少位小数 ,则...
    
    #include <iostream> 
    #include <iomanip>
    using namespace std;
    int main()
    {
    	int a,b;
    	cin>>a>>b;
    	int C = a / b;
    	cout<<C<<endl;
    	double e = a, f = b;
    	double D = e / f;
    	cout<<setprecision(2)<<fixed<<D<<endl;
    	return 0;
    }
    

    整数除法用 “/”的话得到的是一个整数(得到小数的话自动去掉小数位只保留整数位),

    所以这里要得到实际除出来的数的话,先将两个数转化为double类型,再进行“/”除法至于要规定输出保留多少位小数,则用cout<<setprecision(2)<<fixed<<……;其中2表示保留多少位小数(2表示两位)。同时要注意seprecision函数的使用要搭配<iomanip>头文件。关于<iomanip>头文件:
    这个头文件是声明一些 “流操作符”的, 
    比较常用的有: 
    setw(int);//设置显示宽度。 
    left//right//设置左右对齐。 
    setprecision(int);//设置浮点数的精确度。
    原文:https://blog.csdn.net/lv_victor/article/details/50087983 

    #include<iostream>
    #include<iomanip>
    using namespace std;
    int main()
    {
    	//设置左对齐输出,空格在后
    	cout << setiosflags(ios::left)
    		<< setw(10) << 10 << endl
    		<< setw(10) << 100 << endl
    		<< setw(10) << 1000 << endl;
    
    	//设置右对齐输出,空格在前
    	cout << setiosflags(ios::right)
    		<< setw(10) << 10 << endl
    		<< setw(10) << 100 << endl
    		<< setw(10) << 1000 << endl;
    	getchar();
    	return 0;
    }

    运行结果:

     

     

    展开全文
  • C++大整数加减除法除法保留小数

    千次阅读 2019-01-27 23:14:46
    * 除法 * @param a * @param b * @param p 小数点后位数 * @return */ string divide(string a, string b, int p); 源码文件 // // Created by zhengwei. // #include #include #include #include #...

    头文件

    //
    // Created by zhengwei.
    //
    #include <iostream>
    #include <string>
    using namespace std;
    
    /**
     * 去除头部的0
     * @param str
     * @return
     */
    string dezero(const string str);
    
    /**
     * 加法
     * @param a
     * @param b
     * @return
     */
    string add(string a, string b);
    
    /**
     * 在前面添加0
     * @param basic_string
     * @param cnt 0的个数
     */
    void prependZero(string &basic_string, unsigned long cnt);
    
    /**
     * 整数转字符串
     * @param i
     * @return
     */
    string int2string(int i);
    
    /**
     * 减法
     * @param a
     * @param b
     * @return
     */
    string subtract(string a, string b);
    
    /**
     * 比较a,b代表的整数哪个更大
     * a>b,返回1
     * a=b,返回0
     * a<b,返回-1
     * @param a
     * @param b
     * @return
     */
    int cmp(string a, string b);
    /**
     * 除法
     * @param a
     * @param b
     * @param p 小数点后位数
     * @return
     */
    string divide(string a, string b, int p);
    
    

    源码文件

    //
    // Created by zhengwei.
    //
    #include <iostream>
    #include <string>
    #include <sstream>
    #include <algorithm>
    #include "BigNumber.h"
    
    using namespace std;
    
    int main(int argc, const char *argv[]) {
    //    string s = dezero("000234");
        string addAns = add("9999999999999999999999",
                            "1111111111111111111111");
    //    addAns = add("103", "98");
    //    string subAns = subtract(addAns, "1111111111111111111111");
        string subAns = subtract("89", "123");
    //    string dvdAns = divide("10", "2", 0);
        string dvdAns = divide("1", "3", 10);
        cout << dvdAns << endl;
        return 0;
    }
    
    string divide(string a, string b, int p) {
        string ans;
        int inte = 0;
        while (cmp(a, b) >= 0) {
            a = subtract(a, b);
            inte++;
        }
        ans.append(int2string(inte));
        if (p <= 0) {
            return ans;
        }
        ans.append(".");
        //    此时a已经小于b
        int p1 = 0;
    
        while (p1 < p) {
            int zeroCnt = 0;
            while (cmp(a, b) == -1) {
                a = a + "0";//后面拼一个0,代表乘以10
                zeroCnt++;
                if (zeroCnt > 1) {
                    ans.append("0");
                    p1++;
                    if (p1 == p) {
                        return ans;
                    }
                }
            }
    
            int t = 0;
            while (cmp(a, b) >= 0) {
                a = subtract(a, b);
                t++;
            }
            ans.append(int2string(t));
            p1++;
        }
        return ans;
    }
    
    string subtract(string a, string b) {
        string ans;
        bool negetive = false;
        unsigned long lenA = a.length();
        unsigned long lenB = b.length();
        unsigned long len;
        string x, y;
    //    补0,定大数在前等准备工作
        if (lenA > lenB) {
            len = lenA;
            prependZero(b, lenA - lenB);
            x = a;
            y = b;
        } else if (lenA < lenB) {
            len = lenB;
            prependZero(a, lenB - lenA);
            x = b;
            y = a;
            negetive = true;
        } else {
            len = lenA;
            if (cmp(a, b) > 0) {
                x = a;
                y = b;
            } else if (cmp(a, b) < 0) {
                x = b;
                y = a;
                negetive = true;
            } else {
                return "0";
            }
        }
    //    开始做减法
        int jie = 0;
        for (int i = len - 1; i >= 0; --i) {
            int sub = (x[i] - '0') - jie - (y[i] - '0');//按位减法
            if (sub < 0) {
                jie = 1;
                ans.insert(0, int2string(sub + 10));
            } else {
                jie = 0;
                ans.insert(0, int2string(sub));
            }
        }
        ans = dezero(ans);
        if (negetive) {
            ans.insert(0, "-");
        }
        return ans;
    }
    
    int cmp(string a, string b) {
        a = dezero(a);
        b = dezero(b);
        if (a.length() > b.length()) {
            return 1;
        }
        if (a.length() < b.length()) {
            return -1;
        }
        int i = 0, j = 0;
        while (i != a.length() && j != b.length()) {
            if (a[i] > b[j]) {
                return 1;
            } else if (a[i] < b[j]) {
                return -1;
            } else {
                i++;
                j++;
            }
        }
        return 0;
    }
    
    string add(string a, string b) {
        string ans;
        unsigned long lenA = a.length();
        unsigned long lenB = b.length();
        unsigned long len;
        if (lenA > lenB) {
            len = lenA;
            prependZero(b, lenA - lenB);
        } else if (lenA < lenB) {
            len = lenB;
            prependZero(b, lenB - lenA);
        } else {
            len = lenA;
        }
        int jin = 0;
        for (int i = len - 1; i >= 0; --i) {
            int sum = (a[i] - '0') + (b[i] - '0') + jin;
            if (sum >= 10) {
                ans.insert(0, int2string(sum - 10));
                jin = 1;
            } else {
                ans.insert(0, int2string(sum));
                jin = 0;
            }
        }
        if (jin == 1) {
            ans.insert(0, "1");
        }
        return ans;
    
    }
    
    string int2string(int i) {
        stringstream ss;
        ss << i;
        string ans;
        ss >> ans;
        return ans;
    }
    
    void prependZero(string &basic_string, unsigned long cnt) {
        for (int i = 0; i < cnt; ++i) {
            basic_string.insert(basic_string.begin(), '0');
        }
    }
    
    string dezero(const string str) {
        long cnt = 0;
        for (int i = 0; i < str.length(); ++i) {
            if (str[i] == '0') {
                cnt++;
            } else {
                break;
            }
        }
        if (cnt == str.length()) {
            return "0";
        } else {
            return str.substr(cnt);
        }
    
    }
    
    展开全文
  • C++整数除法保留小数

    千次阅读 2020-11-08 20:09:33
    #include <iostream> #include <iomanip> using namespace std; int main() { int a,b; cin>>a>>b; int C = a / b; cout<<C<<endl; double e = a, f = b;...D&
    #include <iostream> 
    #include <iomanip>
    using namespace std;
    int main()
    {
    	int a,b;
    	cin>>a>>b;
    	int C = a / b;
    	cout<<C<<endl;
    	double e = a, f = b;
    	double D = e / f;
    	cout<<setprecision(2)<<fixed<<D<<endl;
    	return 0;
    }
    

    整数除法用 “/”的话得到的是一个整数(得到小数的话自动去掉小数位只保留整数位),

    所以这里要得到实际除出来的数的话,先将两个数转化为double类型,再进行“/”除法。

    至于要规定输出保留多少位小数,则用cout<<setprecision(2)<<fixed<<……;其中2表示保留多少位小数(2表示两位)。同时要注意seprecision函数的使用要搭配< iomanip>头文件。关于< iomanip>头文件:
    这个头文件是声明一些 “流操作符”的,

    	比较常用的有: 
    	setw(int);//设置显示宽度。 
    	left//right//设置左右对齐。 
    	setprecision(int);//设置浮点数的精确度。
    	原文:https://blog.csdn.net/lv_victor/article/details/50087983 
    
    #include<iostream>
    #include<iomanip>
    using namespace std;
    int main()
    {
    	//设置左对齐输出,空格在后
    	cout << setiosflags(ios::left)
    		<< setw(10) << 10 << endl
    		<< setw(10) << 100 << endl
    		<< setw(10) << 1000 << endl;
     
    	//设置右对齐输出,空格在前
    	cout << setiosflags(ios::right)
    		<< setw(10) << 10 << endl
    		<< setw(10) << 100 << endl
    		<< setw(10) << 1000 << endl;
    	getchar();
    	return 0;
    }
    

    在这里插入图片描述

    展开全文
  • cout代码分析: 整数除法用 “/”的话得到的是一个整数(得到小数的话自动去掉小数位只保留整数位) 解决方法: 先将两个数转化为double类型,再进行“/”除法 保留小数位数,则用cout<**头文件 setw(int);...

    #include <iostream> 
    #include <iomanip>
    using namespace std;
     
     
    int main()
    {
    	int a,b;
    	cin>>a>>b;
    	int C = a / b;
    	cout<<C<<endl;
    	double e = a, f = b;
    	double D = e / f;
    	cout<<setprecision(2)<<fixed<<D<<endl;
    	return 0;
    }
    ____
    

    代码分析:

    整数除法用 “/”的话得到的是一个整数(得到小数的话自动去掉小数位只保留整数位)
    

    解决方法:

    先将两个数转化为double类型,再进行“/”除法
    保留小数位数,则用cout<<setprecision(2);其中2表示保留2位小数
    seprecision函数的使用要搭配**<iomanip>**头文件
    
    setw(int);					//设置显示宽度
    setiosflags(ios::left)  	//设置左对齐
    setiosflags(ios::right)  	//设置右对齐
    
      //设置左对齐输出,空格在后
    cout<<setiosflags(ios::left)  
    <<setw(5)<<10<<endl
    <<setw(5)<<100<<endl
    <<setw(5)<<1000<<endl;    
    
     //设置右对齐输出,空格在前
    cout<<setiosflags(ios::right)
    <<setw(5)<<10<<endl
    <<setw(5)<<100<<endl
    <<setw(5)<<1000<<endl;    
    
    
    展开全文
  • 将被除数或者除数改为浮点型变量; 如果是两个 int 整型做除法,就在运算结果表达式前乘以 0.1 。*一定要chengyi
  • 两个整数相除会自动省略小数点后的小数位即使下面这种: ...整数除法用 “/”的话得到的是一个整数(得到小数的话自动去掉小数位只保留整数位), 所以这里要得到实际除出来的数的话,先将两个数转化为doub...
  • C/C++整数除法以及保留小数位的问题

    万次阅读 2015-11-28 22:11:43
    整数除法用 “/”的话得到的是一个整数(得到小数的话自动去掉小数位只保留整数位),所以这里要得到实际除出来的数的话,先将两个数转化为double类型,再进行“/”除法。至于要规定输出保留多少位小数,则用 cout(2...
  • #include ...输出一个整数,表示所有碎片的平均长度,四舍五入保留两位小数。 如样例所示: s = "aaabbaaac" 所有碎片的平均长度 = (3 + 2 + 3 + 1) / 4 = 2.25 输入例子1: aaabbaaac 输出例子1: 2.25
  • 2.代码如下: #include<iostream> #include<iomanip> using namespace std; int main() { int i,p=1; double sum=0; for(i=1;i<=30;i++) { p*=i; sum+=p; } cout<......
  • C语言中实数的除法怎样保留小数呢? 这里提供两种方法,运行效果是一样的: (1)定义变量类型:a、b无论谁定义int或者double/float类型,都是整形转化为浮点型计算,保证除法运算中变量类型有一个是浮点型。 # ...
  • c++ opencv 除法取整方式

    千次阅读 2019-01-25 11:35:39
    事情这样的,本来我有个16bit图片,我想拿到高8bit。 然后Mat 无法重载<<8,我就使用了Mat/256达到右移8bit的目的。 我的结果一直有损失。经过认真考察。...opencv 是四舍五入取整...............
  • Qt文本保留小数

    2020-05-18 11:36:13
    1、Qt文本保留小数点,保留2位小数 QString::number(deviceInfo.GYROSCOPE_z,'f',2)
  • C++保留两位小数输出

    千次阅读 2017-02-10 20:23:49
    #include cout
  • C++--输出:保留两位小数

    万次阅读 多人点赞 2019-10-09 20:32:17
    输出:保留两位小数 问题 已知a=0.20001,输出:0.20 思路 setprecision:功能是控制输出流显示浮点数的有效数字个数,注意是有效数字。如果和fixed合用的话,可以控制小数点后面有几位。 这下这知道为什么输出是0.2...
  • C++ 保留7位小数,并且四舍五入

    千次阅读 2020-10-28 16:28:24
    在做蓝桥杯的基础练习时——圆的面积,要求保留小数点后的7位小数,并且四舍五入。 我原本为了方便使用了printf但是测试无法通过,可能还有PI最好还是用公式算出比较好。 百度了C++如何保留小数点后的位数,并且四舍...
  • Python中的除法保留两位小数

    万次阅读 2017-08-31 20:30:43
    在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分)。例如 int a=15/10; a的结果为1。同样的在Java中也是如此,所以两个int型的数据相除需要返回一个浮点型数据的时候就需要强制类型转换,例如 float a = ...
  • 如果想要保留n位小数 根据C++官网上的解释,该函数没有指定的返回类型,并且该函数用于设定输出操作上的小数精确位。 然后返回值中解释:未指定返回值,这个函数仅用于数据流修改操作上。 说了这么多,我想要...
  • int 类型除法保留小数点

    千次阅读 2020-10-19 16:09:39
    Test public void txfloat() { // TODO 自动生成的方法存根 ... // 保留几位在小数点后添加几个零 System.out.println(df.format((float)a/b)); System.out.println(df.format(a/(float)b)); System.out.pri
  • c++中获取小数点后面小数的方法

    千次阅读 2017-03-31 16:25:08
    double getPoint(double n) { double nTemp=n-(int)n; return nTemp; }
  • C++除法

    万次阅读 2018-06-13 09:34:17
    二是有一个操作数为浮点数,运算结果就会保留小数部分,此时才算真正的除法.例如,要计算2个double类型相除结果,如61/387,应得到0.15*****,直接用“/”计算结果却为0如k1=61/38...
  • 求a/b的前n位小数商。输入a b n输出一行数字样例输入97 61 50样例输出1.59016393442622950819672131147540983606557377049180就是有些测试点过不了,大神们帮我看看,我有何遗漏的地方我的程序:考虑了小数点为0...
  • java里怎样让float保留3位小数数据库里保存的float值是0.0346562 保留小数位3位 如0.035后面的四舍五有一个方法很简单,保留三个小数,就是乘以1000(10的3次方),取整,再除以1000 float f = (int)Math.round(0.0346562*...
  • C++除法

    万次阅读 2020-03-09 17:31:14
    C++除法分为两种情况,一种是整型之间的除法,一种是浮点数之间的除法 对于整型之间的除法(int),除法的结果只会保留商的整数部分,如下面: int x = 356; cout <<x/100<< endl; //输出3 对于...
  • C++除法运算需要注意的细节

    千次阅读 2020-03-27 16:22:52
    真分数一定要写成double型!!!... 所以要写成1/5.0,C++就会识别为浮点数,默认结果为double类型,相除结果自然就是一个小数。 例题: 源码: #include <iostream> using nam...
  • C++ 高精度除法

    2021-10-25 20:53:55
    高精度除法主要处理的就是把一个数字转换成高精度类型,然后进行操作。 其实只要一位一位地判断,然后再把剩下的补到前面去就行了。 #include<bits/stdc++.h> using namespace std; const int N=2e4; char ...
  • 2016-09-01 00:30最佳答案C++的优先级优先级 操作符 结合性1 :: 左2 . -> [] () 左3 ++ -- ~ ! - + & * () sizeof new delete castname_cast 单目操作符 右4 .* ->* 左5 * / % 左6 + - 左7 << >&...
  • 分数化小数(decimal)(C语言描述) 分数化小数四舍五入情况
  • C++除法取整

    万次阅读 2016-02-24 17:19:18
    使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:  floor(2.5) = 2  floor(-2.5) = -3 使用ceil函数。ceil(x)返回的是大于x的最小整数。如:  ceil(2.5) = 3  ceil(-2.5) = -2 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,007
精华内容 4,802
关键字:

c++除法保留小数

c++ 订阅