關於四舍五入
用 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