c語言中如何進行四捨五入求詳細解釋謝謝

2022-02-14 18:23:16 字數 4429 閱讀 8564

1樓:

方法一:

#include

int main()

double d1,d2,d3;

d1=-3.1415926;

d2=(int)(d1*10+0.5)*0.1;

printf("d1=%f,保留一位小數的結果為:%.1f\n",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樓:

這個很簡單的。

比如有一個浮點數float a,要四捨五入只要這樣:

int ia = (int)(a + 0.5)。只要a的小數》=0.5,a+0.5的整數位就會進一,然後取整;

小於0.5呢,取整還是原數。

簡單吧。

c語言中怎麼四捨五入

3樓:匿名使用者

利用取整運算的截斷特點實現。

比如:int a=0.75;取整後賦值給a的是0,小數點後面的被截斷了。

如果要做整數的四捨五入,那麼可以:a=(int)(0.75+0.5);取整後得到的與數學中四捨五入的結果一致,都是1;

如果要進行小數點後面的四捨五入,可以這樣計算:

要保留小數點後面兩位的小數,即在小數點後面兩位上做四捨五入,0.756

float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100.0;

運算是這樣的:先將0.756乘以100,得到75.

6,然後利用取值運算的截斷做四捨五入,75.6+0.5=76.

1取整後等於76,再除以100,得到結果:0.76

4樓:高中生三

設 float x ; int  y ; 則有y=(int)(x+0.5)>(int)x?(int)x+1:(int)x進行上述運算後,y 的值就是 x 四捨五入的結果。

利用取整運算的截斷特點實現。

比如:int a=0.75;取整後賦值給a的是0,小數點後面的被截斷了。

如果要做整數的四捨五入,那麼可以:a=(int)(0.75+0.5);取整後得到的與數學中四捨五入的結果一致,都是1;

如果要進行小數點後面的四捨五入,可以這樣計算:

要保留小數點後面兩位的小數,即在小數點後面兩位上做四捨五入,0.756

float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100;

運算是這樣的:先將0.756乘以100,得到75.

6,然後利用取值運算的截斷做四捨五入,75.6+0.5=76.

1取整後等於76,再除以100,得到結果:0.76

5樓:請叫我小強

如果是保留後面的兩位小數,就應該用取整,

比如0.756

double a=0.756;

a=(a*100+0.5)/100.0;

printf(“%.2lf",a)

6樓:聽不清啊

如果只是要求輸出結果“四捨五入”,只要通過輸出格式符控制即可。

例如:double pi=3.1415926;

printf("%.4lf\n",pi);

可得輸出為3.1416。

printf("%.2lf\n",pi);

可得輸出為3.14。

如果是要把變數本身的值四捨五入到4位小數,則可以這樣處理:

double pi=3.1415926;

pi=((int)(pi*10000+0.5))/10000.0;

7樓:匿名使用者

有一個round函式可以

直接呼叫,

#include"stdio.h"

#include"math.h"

void main()

8樓:匿名使用者

將整數+5,再整除10,再乘以10,就可以了參考**:

#include

int main()

9樓:匿名使用者

round(x)

引數時double型,返回小數對整數部分的四捨五入值

比如 round(3.623); 返回4

10樓:量子高巨集亮

y = (int)(x+0.5);

11樓:匿名使用者

int main()

12樓:匿名使用者

比如小數為 f

(float)((int)(f*100+0.5))/100.0

首先為了保留兩位,乘以100,小數點向前兩位, 然後+0.5取整保證是四捨五入 再轉成 float形式或double形式 除以100 就ok了

13樓:毛毛

利用取整運算的截斷特點實現。

14樓:匿名使用者

給你個簡單的餓例子

四捨五入小數點後一位

float f=1.54536;

f=(int)(f*10+5)/10.0;

你分析看看就知道了

#include

main()

15樓:匿名使用者

中間函式這樣填:

float x;

int a;

cin>>x;

if(x>=0)

a=x+0.5;

else

a=x-0.5;

16樓:清雅之蘭向日葵

使用一個if語句,讓它的值減去它的整數形式然後與0.5比較

17樓:菜鳥升級中

int a = 100.453627

printf("%.1f",a + 0.05); //四捨五入到十分位

printf("%.2f",a + 0.005); //四捨五入到百分位

後面的方法一樣

18樓:匿名使用者

那你這個是什麼意思呢。。不許用“%.1f %.2f。。。

我的想法是,十分位,你就把你的數*10,然後%10的到的餘數就是這位。。。百分位類似。。

後續怎麼輸出,你就自己看著辦吧。。反正小數點你是肯定要自己輸出了 :)

19樓:我在天堂d你

最後一步錯啦,要b=(float)x/100

c語言中如何對浮點數進行四捨五入?

20樓:

c語言中對於浮點數輸出的四捨五入是自動進行的。在浮點數的有效位數範圍內,當要求保留小數點後n位時,系統會自動根據第n+1的值自動進行四捨五入操作。以下**可以驗證:

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

int main(void)

輸出是:

3.141592653589793

3.142

3.14159

21樓:匿名使用者

%.nf,其中n是字面常量,功能是輸到小數點後面的第n位,第n + 1位“四捨五入”。下面是在vc++ 6.0環境下的測試結果。

/*0.234562

0.235

0.2346

0.23456

press any key to continue*/#include

int main()

22樓:匿名使用者

%.3f 的意思是輸入小數點之前的三位數,比如說: 12.1234 會輸出:12.123,

0.1236會輸出:0.123 。之後的數字會被直接無語!

你可以用下面的方法(不過這個方法只適合正數,負數就不行了)float a = 1.1235; //保留到小數點後三位float b =(int)((a * 1000) + 0.5) / 1000.

0;//output b = 1.124;

23樓:彤慧利

加個0.5再取整數,如:1.4 0.5取整1;1.5 0.5取整2。

excel中如何設定四捨五入,excel中如何四捨五入

excel如何進行四捨五入?用round函式 round number,num digits number 需要進行舍入的數字。num digits 指定的位數,按此位數進行舍入。要保留的小數位位數 如果 num digits 大於 0,則舍入到指定的小數位。如果 num digits 等於 0,則...

數學四捨五入比五小的要不要減,數學,四捨五入是什麼意思,怎麼理解。

四捨五入是一種精確度的計數保留法,與其他方法本質相同。如果要捨去部分的第一個數比5大或等於5,需要向前進一位,如果捨去部分的第一個數比5小,直接捨去。數學,四捨五入是什麼意思,怎麼理解。在取小數近似數的時候,如果尾數的最高位數字是4或者比4小,就把尾數去掉。如果尾數的最高位數是5或者比5大,就把尾數...

如何用Fix N 和Int N 實現四捨五入取整?用VB,完整的程式

用fix x 0.5 可以對x進行四捨五入,假如有負數用int代替fix,正數用fix效率高 有一個按鈕command1,和一個文字框text1 private sub command1 click text1.text fix text1.text 0.5 end sub int 函式,fix 函...