程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 關於小數四捨五入的方式,小數四捨五入

關於小數四捨五入的方式,小數四捨五入

編輯:關於C語言

關於小數四捨五入的方式,小數四捨五入


近日,發現小數四捨五入寫代碼有問題,遂網絡上查了下資料,記錄下來以便日後查詢。

原理:放大數據,再利用運算符的優先級處理。

1.首先,得知道,運算優先級,括號→轉換→乘除加減。

#include <stdio.h> long powe(long n); int main(void) { long t; //過渡量 long i = 3; //精度,小數點後幾位。 float h = 11.5555; //需要進行四捨五入的數 t = (long)((h*powe(i+1)+5)/10.0); h = (float)t/powe(i); printf("%f",h); return 0; } long powe(long n) //平方 { long x=1; if(n>0) x = 10*powe(--n); else return 1; return x; }

㈡加法實現:

#include <stdio.h>

double powe(double n);

int main(void)
{
	double x = 11.55556666;			//需四捨五入的數
	double i = 3;					//精度
	double y = 0;					//結果
	y = 0.01*1.0/powe(i)*(int)(100.0*powe(i)*(x+0.005*1.0/powe(i)));//默認小數點後一位
	printf("%f",y);
	return 0;
}

double powe(double n)
{
	--n;
	double s = 0;
	if(--n>0)
		s = 10*powe(--n);
	else
		return 1;
	return s;
}

總結:

     以上兩種方式都是針對小數點後幾位進行四捨五入,第一種方式優點在於負數也能進行,第二種則不能。但需注意的是,在第一種方式中隱形轉換對其影響大,個人推薦使用第二種方式。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved