關於四舍五入
用 int 的強製轉換是直接取下麵一個整數,不論是不是 四舍五入。。。
自己寫了一個round四舍五入模板:
四舍五入代碼模板:
#include <stdio.h>
int round(double a)
{
if(a-(int)(a)>=0.5)
return (int)(a)+1;
else
return (int)(a);
}
int main()
{
double a;
int result;
while(scanf("%lf",&a)!=EOF)
{
result=round(a);
printf("after round:%d\n",result);
}
return 0;
}
運行結果為:

測試代碼之一:
#include <stdio.h>
int main()
{
printf("5 * 1.5 = %d\n",(int)(5*1.5));
printf("4 * 2.1 = %d\n",(int)(4*2.1));
return 0;
}
運行結果是:
7
8
這說明:
(int)強轉隻能取下一個整數。。。7.5取7;8.4也隻取8
測試代碼之二:
#include <stdio.h>
int main()
{
double a=2.5;
printf("%d\n",(int)(a*4));
if((a*4)==10)
printf("YES\n");
else
printf("NO\n");
return 0;
}
運行結果是:
10
YES
這說明:
double 型可以和 int 型比較,10.0 == 10 //OK
最後更新:2017-04-03 14:53:53