閱讀409 返回首頁    go 阿裏雲 go 技術社區[雲棲]


關於四舍五入

用 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

  上一篇:go 機器學習_基於adaboost和haar like特征的人臉識別
  下一篇:go GNU Radiuo 數據處理模塊