问题标题: 酷町堂:c++中怎么四舍五入

2
2

0
已采纳
刘凯南
刘凯南
高级守护
高级守护

n为保留的位数

printf("%.nf",int(四舍五入的数*10的n次方+0.5)/10的n次方.0);

1
丁振轩
丁振轩
资深光能
资深光能

四舍五入是用公式:int((要做的事情,比如:四舍五入5.9,就写5.9;四舍五入3/2,就写3/2)*1(保留几位就加几个0)+0.5)/1(保留几位就加几个0).0。

 

求采纳。

1
周骞珏
周骞珏
中级守护
中级守护

比如小数为 f

(float)((int)(f*100+0.5))/100.0

首先为了保留两位,乘以100,小数点向前两位, 然后+0.5取整保证是四舍五入 再转成 float形式或double形式 除以100 就OK了

求采纳!!!

0
时梓繁
时梓繁
修练者
修练者

方法一:
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(n);
使用setprecision(n)可控制输出流显示浮点数的数字个数,C++默认的流输出数值有效位是6。
如果setprecision(n)与setiosflags(ios::fixed)合用,可控制小数点右边的个数。setiosflags(ios::fixed)是用定点方式表示实数。
如果与setiosnags(ios::scientific)合用,可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
利用算法进行四舍五入,在例子中介绍。
#include <iostream>
#include <iomanip> //要用到格式控制符
#include<cmath>
using namespace std;

int main()
{
double amount = 22.0/7;
cout<<amount <<endl;
cout<<setprecision(0) <<amount <<endl;
cout<<setprecision(1) <<amount <<endl;
cout<<setprecision(2) <<amount <<endl;
cout<<setprecision(3) <<amount <<endl;
cout<<setprecision(4) <<amount <<endl;
cout <<setiosflags(ios::fixed)<<setprecision(8) <<amount <<endl;

0
时梓繁
时梓繁
修练者
修练者

printf("%d",(int)(a*1+0.5)/1.0);

头文件#include<cstdio>

0
杨子逸
杨子逸
新手天翼
新手天翼

printf("%.0f",int(a+0.5));

杨子逸在2018-09-13 20:48:32追加了内容

要加:#include<cstdio>

0
尹宗鑫
尹宗鑫
新手守护
新手守护

printf(%.保留几位小数f",一个数);

例如:printf(%.2f",a*b*c);

头文件:#include<cstdio>

0
叶子煊
叶子煊
中级光能
中级光能

主要的是:

double a;
cin>>a;
a=a+0.5;
cout<<(int)a;

就可以了!

望采纳!!!

~~~~~~~~~~~~~~~~~

如果保留小数的话

用C语言

int main()
{  
double a; a=0.1;
printf(“a = %.17f\n”,a);
return 0;
}

当然也可以用C++

只不过比较麻烦

such as:

cout<<setiosflags(ios::fixed)<<setprecision(4)<<a<<endl;
0
我要回答