A. 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
B. 在C語言中,相除後取整的時候,我記得有些需要四捨五入,有些直接取整數部分,分別是哪些情況
到底需要四捨五入還是直接取整不是程序說了算了,是根據實際情況說了算的
這個要看你需要的結果了
比如說
double x;
printf("%d",int(x)) 取整
printf("%d",int(x+0.5)) 四捨五入
C. C語言中 兩個整形相除是不是自動四捨五入
所謂的整形,就是取整數部分。
如果a=3.98,則 int a=3。a=58.49,則 int a=58。取整隻看整數部分取值,而不是四捨五入。
C語言中,一般而言整型數是雙位元組,所以:
有符號型:最大32767,最小 -32768
無符號型:內最大 65535,最小 0
但對於C++,面對32位機時,整型容數變成了雙字,所以:
有符號型:最大 2147483647,最小 -2147483648
無符號型:最大 4294967295,最小 0
(3)c語言除法浮點不四捨五入擴展閱讀:
c語言中長整型常量的數值范圍最小是十進制的-2147483647~+2147483647,在計算機中最少佔用4個位元組。位元組長度跟操作系統和編譯器抄有關,longint長度至少32位,而64位類Unix系統為64位。
c語言中整型常量是通常的整數,包括正整數、負整數和0,其數據類襲型顯然是整型。整型常量內存大小和數值范圍取決於編譯器。
D. c語言的四捨五入問題,printf輸出時什麼情況四捨五入,什麼情況不四捨五入
printf在輸出浮點數的時候都是四捨五入的.
要想不四捨五入, 需要自己做處理的.
PS:部分系統使用的不是四捨五入 而是四捨六入五成雙
E. 在C語言中如何不四捨五入保留小數
如果你是單純為了把這個數列印出來,那麼用%2f就可以了。
但是如果你要在程序中做運算的時候希望能夠不四捨五入地保留小數,
那下面的方法可以做到。
#include
<math.h>
main()
{
int
k
=
3;
double
number
=
655.12345;
number
=
(int)(number)
+
((int)((number-(int)(number))*pow(10.0,k)))/pow(10.0,k);
printf("%f\n",number);
getch();
}
F. C語言中什麼運算只取整數部分,什麼時候不但取整,還要四捨五入 發現C語言中很多時候不用四捨五入
取整要看類型的自動轉換了,,比如a和b都是整形數據,那麼a/b的結果就一定是整形。結果就取整數部分,如果其中有一個是浮點型,那麼結果就是浮點型,但是不會四捨五入,如果需要四捨五入那麼應該寫成a/b+0.5.自動轉換的順序是char,short,int,float,double,越往後優先順序越高
G. c語言為什麼float類型有時候不四捨五入
浮點數保留小數點後的數據,有時會自動四捨五入,有時不會自動四捨五入。但是…
如果把一個浮點數賦給一個整數變數後,一定不會四捨五入。
所以,我們在保留浮點數的小數點精度時,必須要人工處理四捨五入。
你可以多找幾組數據試試,
H. c語言四捨五入是怎樣的
全舍不入
需要實現四捨五入的時候就要使用double或者float類型的數進行運算然後if判斷
http://..com/question/68502540.html剛好有個類似的問題
I. c語言中將一個浮點型賦值給整型時,會不會四捨五入
c語言中將一個浮點型賦值給整型時,不會四捨五入,會直接捨去小數部分的數據,也可以認為是執行了下取整運算。
將浮點數(單雙精度)轉換為整數時,將舍棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:賦值時的類型轉換實際上是強制的。
例如執行賦值後,無論5.4還是5.6都會變成5。
(9)c語言除法浮點不四捨五入擴展閱讀:
C語言中其它數據類型的轉換:
1、單、雙精度浮點型
由於C語言中的浮點值總是用雙精度表示的,所以float 型數據只是在尾部加0延長為double型數據參加運算,然後直接賦值。double型數據轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。
2、char型與int型
int型數值賦給char型變數時,只保留其最低8位,高位部分舍棄。
char型數值賦給int型變數時, 一些編譯程序不管其值大小都作正數處理,而另一些編譯程序在轉換時,若char型數據值大於127,就作為負數處理。
3、int型與long型
long型數據賦給int型變數時,將低16位值送給int型變數,而將高16 位截斷舍棄。(這里假定int型占兩個位元組)。 將int型數據送給long型變數時,其外部值保持不變,而內部形式有所改變。
J. C語言 除法
#include <stdio.h>
void main()
{
printf("%f\n",4.0/16);
}
如果是以上這樣的話,結果是0.250000
因為float是精確到小數點後6位的.所以在不加限制的情況下是0.25000
如果是
#include <stdio.h>
void main()
{
printf("%d\n",4.0/16);
}
那麼結果是0.因數4除16等於0.25小於1捨去.就變成0了.(在這里C語言沒有四捨五入,一律舍!)
不知道是不是你想要的答案?