C语言的四舍五入问题总结
1.强制类型转换
“无四舍五入”
eg:1. int ai; ai=2.56; 输出的话ai=2
2.(int)3.8=3;
2.保留小数位数输出
“有四舍五入”
%.nf
3.实现四舍五入取整数
#include<stdio.h>
int main()
{
double s;
int m;
scanf("%lf",&s) ;
m=(int)(s+0.5);//****
printf("%d\n",m);
return 0;
}
注:小数加上0.5强制转换为int
4.保留特定位数的小数
double a = 3.456; //保留到小数点后两位
double b =(int)((a * 100) + 0.5) / 100.0;
**注:**保留几位就是将数字放大,保留小数后再缩小。
5.负数保留方法
#include <stdio.h>
int main()
{
double a = -423.43654;
a = int(a*100-0.5)/100.0; //-0.5
printf("%.2lf\n", a); //以小数后两位的形式输出
return 0;