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...