『壹』 C語言怎麼四捨五入
利用取整。
比如 四捨五入到千分位,可以
(int)(x*1000+0.5)/1000.0
十分位(int)(x*10+0.5)/10.0
其他類似,只改變其中倍數的值即可。
『貳』 c語言中如何進行四捨五入,求詳細解釋!!謝謝!
方法一:
#include<stdio.h>
int main()
{
double d1,d2,d3;
d1=-3.1415926;
d2=(int)(d1*10+0.5)*0.1;
printf("d1=%f,保留一位小數的結果為:%.1f ",d1,d2);
d3=(int)(d1*1000+0.5)*0.001;
printf("d1=%f,保留三位小數的結果為:%.3f",d1,d3);
總結四捨五入保留n為小數
(int)(x*10的n次方+0.5)*10的負n次方;
其次這個方法對負數無效;如果非要用可以先取正數部分算,最後加上負號
}
方法二:
使用round()函數。
#include"stdio.h"
#include"math.h"
void main()
{
float x;
scanf("%f",&x);
int y = round(x);
printf("%d",y);
}
(2)c語言怎樣讓數據四捨五入擴展閱讀:
C語言編寫注意事項:
1、%運算符不能應用與float或double類型。
2、char類型轉換為int型時, 無法判斷它是signed還是unsigned.這樣其結果有可能為負數, 因此轉換時盡量指定signed和unsigned限制符。
3、++i與i++不同之處: ++i是先+1在使用, i++是先使用i在遞加1。
4、三元運算符"?:" 第一個表達式的括弧不是必須的,但是由於三元表達式的優先順序非常低,我們還是將第一個表達式用()括起便於閱讀和理解。
5、C語言中可以使用遞歸 (即函數調用自身函數), 其不節省儲存器開銷也不加快執行速度, 只是使程序緊湊便於理解。
『叄』 c語言的關於 : 對一個double型數據進行四捨五入運算
對double數據類型進行四捨五入運算,可以利用double轉為整型時強製取整來做到。
1
將double類型數據,強制轉換為int類型,會強制截取整數部分。
比如double
a
=
1.23;
(int)a的值就是1。
2
由於是強製取整,所以即使是1.9轉為int後,同樣是1,這與四捨五入的要求不符。所以可以轉換一下演算法,做(int)(a+0.5)就可以實現四捨五入到整數的效果了。
3
要實現四捨五入到某一位,可以先乘一個值,將該位移動到個位,取整後,再除上這個值,將其移動回去。
比如將double
a
=
1.2345四捨五入保留2位小數,可以寫作
(int)(a*100+0.5)/100.0。
『肆』 c語言中有沒有進行四捨五入的函數
四捨五入演算法:如果要求精確到小數點後面的第n位,則需要對第n+1位進行運算。方法是將該小數乘以10的n+1次方後加5,然後除以10並強制轉換變數類型為長整型,再將該數除以10的n次方,同時強制轉換類型為浮點型。x0dx0a代碼實現如下:x0dx0along t;/*定義長整型變數t*/x0dx0at=(h*10n+1+5)/10;/*對h進行操作,得到值浮點型,t取值時取整數部分。10n+1為要擴大的倍數*/x0dx0ah=(float)t/10n; /*將t縮小10n倍,並轉換成浮點型*/
『伍』 C語言輸入一個double類型數據,要求將該數保留一位小數,第二位進行四捨五入,並將結果輸出
在C語言中輸入一個double類型數據,將該數保留一位小數,第二位進行四捨五入,並將結果輸出,這是很容易實現的,因為它自帶的格式輸出函數printf就可以輕松實現這一功能的:
double x;
scanf("%lf",&x);
printf("%.2f\n",x);
『陸』 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語言如何實現浮點數的四捨五入
可以寫個函數
int sheru(double i){
double a = i - (int) i ;//求此浮點數的小數部分
if(a < 0.5)
return int(i);//如果小數部分小於0.5.則返回整數部分.double強制轉換int會去掉小數位
else
return int(i)+1;//反之,加一
}