❶ C程序里,怎樣做到四捨五入
C的整數除法,取整之類操作都是扔小數的, 你想四捨五入,只需要簡單的在末尾+0.5就行了。 因為小於0.5的,加了還是不進位,所以取整是舍; 而大於等於0.5的小數部分加0.5後,會進位,整數部分加了1,再舍小數部分,也比原來整數多1了,相當於5入 如
double f=12.55;
int z=(int)(f+0.5);
❷ c語言中有沒有進行四捨五入的函數
四捨五入演算法:如果要求精確到小數點後面的第n位,則需要對第n+1位進行運算。方法是將該小數乘以10的n+1次方後加5,然後除以10並強制轉換變數類型為長整型,再將該數除以10的n次方,同時強制轉換類型為浮點型。
代碼實現如下:
long t;/*定義長整型變數t*/
t=(h*10n+1+5)/10;/*對h進行操作,得到值浮點型,t取值時取整數部分。10n+1為要擴大的倍數*/
h=(float)t/10n; /*將t縮小10n倍,並轉換成浮點型*/
❸ C語言中關於四捨五入的問題。
如果把s=((int)(s*10000+0.5))/10000.0
去掉
再printf("%.4f",s);
輸入3.1415926
那麼最後結果
是
3.1415
不會是3.1416
cpu沒有四捨五入的功能
只能靠編程實現
s=((int)(s*10000+0.5))/10000.0
就是
用啦對小數點後第4位實現四捨五入的
你可以驗證一下
❹ C語言問題,這里怎麼實現四捨五入的啊
假定一個數字x值是10.456,那麼保留兩位,第三位四捨五入的方法就是先將x乘以100,變成1045.6,然後加上0.5,得到1046.1,然後去除1046.1的小數部分(也就是強制轉為int),得到1046,再用1046除以100.0就得到最終的10.46,寫出來也就是
x=(int)(x*100+0.5)/100.0
❺ c語言中有沒有四捨五入的函數
double ceil(double x)返回不小於x的最小整數值(然後轉換為double型)。
double floor(double x)返回不大於x的最大整數值。
double round(double x)返回x的四捨五入整數值
int abs(int) 返回整數絕對值
double fabs(double) 返回浮點數絕對值
❻ 如何用C語言對實數四捨五入 謝謝各位了
比如對小數點後第一位四捨五入,最簡單的方法是(int)(實數
+
O.5)。
第二位的話(實數*10
+
O.5)/10.0。
但是負數要特別考慮。
❼ C語言中如何對浮點數進行四捨五入
C語言中對於浮點數輸出的四捨五入是自動進行的。在浮點數的有效位數范圍內,當要求保留小數點後n位時,系統會自動根據第n+1的值自動進行四捨五入操作。以下代碼可以驗證:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
doublepi=3.141592653589793;
printf("%.15f ",pi);
printf("%.3f ",pi);//保留3位小數,因第4位是5而進位
printf("%.5f ",pi);//保留5位小數,因第6位是2而舍棄
return0;
}
輸出是:
3.141592653589793
3.142
3.14159
❽ C語言怎麼四捨五入
利用取整。
比如 四捨五入到千分位,可以
(int)(x*1000+0.5)/1000.0
十分位(int)(x*10+0.5)/10.0
其他類似,只改變其中倍數的值即可。
❾ c語言怎麼實現四捨五入
# incloud <stdio>
int main(void)
{
float a ;
scanf(「%f」,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (「%0.3f」,a);
return 0;
}
(9)c語言中怎麼四捨五入擴展閱讀:
其他方法實現四捨五入:
int myround(double indata,int precision,double * outdata)
{
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
else
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮點數與0比較的函數,假設它存在。返回值與strcmp相同。
❿ c語言中怎麼四捨五入
設 float x ; int y ; 則有y=(int)(x+0.5)>(int)x?(int)x+1:(int)x進行上述運算後,y 的值就是 x 四捨五入的結果。