将浮点数四舍五入

1. 代码

 

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<cmath>
 4 using namespace std;
 5 //将一个浮点数保留n位小数进行四舍五入
 6 void main() 
 7 { 
 8     float a=55.3252,b=55.3248;//内部a=55.32199,
 9     int bit,mtp;
10     printf("请输入你要保留的小数位数:\n");
11     scanf("%d",&bit);
12     mtp=pow((float)10,(float)bit);//注意pow函数重载问题,需要类型匹配,转化为float或double
13     float a1=(a*mtp+0.5)/(float)mtp;
14     float a2=(int)(a*mtp+0.5)/(float)mtp;//被除数转化为int型,除数转化为float型
15     float b1=(b*mtp+0.5)/(float)mtp;
16     float b2=(int)(b*mtp+0.5)/(float)mtp;
17     printf("a1=%f    a2=%f    b1=%f    b2=%f\n",a1,a2,b1,b2);
18     if(bit==2)
19     printf("a1=%.2f    a2=%.2f    b1=%.2f    b2=%.2f\n",a1,a2,b1,b2);
20     else if(bit==3)
21     printf("a1=%.3f    a2=%.3f    b1=%.3f    b2=%.3f\n",a1,a2,b1,b2);
22     system("pause");
23 }    

2. 运行结果

 

posted @ 2015-10-26 10:41  dongyanxia  阅读(432)  评论(0编辑  收藏  举报