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

2022-02-16 08:31:33 字數 4429 閱讀 2018

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。

C語言中什麼時候四捨五入什麼時候直接擷取捨棄呢

轉化成浮點數型別值時是就近舍入 與四捨五入有一點點區別 轉化成整型型別值時是直接擷取捨棄小數部分。c語言中數值轉換什麼時候需要四捨五入,什麼時候不需要?如3.1415926轉換成 f就是3.141 1 實型內部之間的轉換要四捨五入 例如雙精度強制轉換成單精度就要 如果實型轉整型的話專,就直接去屬掉小...

小學四捨五入什麼時候學的,C語言中什麼時候四捨五入什麼時候直接擷取捨棄呢

使用蘇教版教材的孩子是在四年級上冊中學習 四捨五入 的知識 是什麼版本的呢 蘇教版是四年級 c語言中什麼時候四捨五入什麼時候直接擷取捨棄呢 轉化成浮點數型別值時是就近舍入 與四捨五入有一點點區別 轉化成整型型別值時是直接擷取捨棄小數部分。c語言中怎麼四捨五入 利用取整運算的截斷特點實現。比如 int...

用四捨五入法求近似數,是舍還是入

用 四捨五入 法求抄近似數,是 舍 還是 入 要看省略的尾數部分的最高位是小於還是等於或大於5.若小於5,則把它和右邊數的數全改寫成 0 若等於或大於5,則向前一位進一,再把它和右邊數的數全改寫成0.4和比4小的數捨去,5和比5大的數要入 大於等於0.5以上的就入。小於0.5的就舍。1234舍,56...