1樓:匿名使用者
1.c語言的小數都是浮點數。浮點數屬於floating binary point types,也就是說都double型的數值在相加減的時候,會將數值轉換成二進位制的數值如10001.
10010110011這種表示發再做相加減,但是在轉換成二進位制**表示的時候,儲存小數部分的位數會有不夠的現象,即無限迴圈小數,這就就會造成小數相加後結果會有微差距。
2.浮點數是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由乙個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法。
3.浮點計算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或捨入。
乙個浮點數a由兩個數m和e來表示:a = m × b^e。在任意乙個這樣的系統中,我們選擇乙個基數b(記數系統的基)和精度p(即使用多少位來儲存)。
m(即尾數)是形如±d.ddd...ddd的p位數(每一位是乙個介於0到b-1之間的整數,包括0和b-1)。
如果m的第一位是非0整數,m稱作規格化的。有一些描述使用乙個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。
2樓:匿名使用者
x=111111.111;x=222222.222;
為x連續兩次賦值,y值未知。
改為如下:
x=111111.111;
y=222222.222;
3樓:匿名使用者
你把float改為double,把%f改為%lf試一下
4樓:匿名使用者
用double來設x,y
輸出%f
5樓:網際網路開發筆記
x兩次賦值應該是筆誤吧?
這個問題問的好,只是我也不知道怎麼回事,聽別人說這是與計算機組成原理相關,具體的不知道了。我覺得這應該是和浮點計算器有關,因為浮點計算器是乙個高效的計算器,至於高效在什麼地方,可能要有些取捨吧。
6樓:外星人的使用者名稱
你的x寫成y了,但我改正後。測試了很多,發現float型只能接收7位有效數字,而且小數字為三位才能執行正確,我看看書也沒找到很要說服力的答案,希望你知道了,告訴我,我也多喳喳資料吧!一起交流共同進步。。
怎麼用c語言求乙個陣列中所有數的整數部分和及小數部分和?
7樓:會飛的小兔子
#include
voidmain()
doubles;
inta;
doubleb;
printf("pleaseinputadoublenumber:");
scanf("%lf",&s);
a=(int)s;
b=s-a;
printf("ln%d%lf",a,b);
擴充套件資料c語言求100內素數:
#include
usingnamespace std;
int main()
if(prime==true)
cout 8樓:風若遠去何人留 對於任意的浮點數f, c語言規定,將其強制轉換為整型時,(int)f就是其整數部分的值。 根據這個,可以知道小數部分就是f - (int)f。 不過,要求整數部分和小數部分和,可以有更簡單的思路,不需要求每個數的小數部分,而是求得所有數的整數部分和後,用所有數的和減去整數部分和,也就是小數部分和了。這樣可以精簡**,提高效率。 演算法流程如下: 1 定義兩個統計變數,儲存整數和以及所有數的和,初始化為0; 2 遍歷陣列,求每個數的整數部分,並累加到整數和。 3 同步計算每個數的和; 4 遍歷結束後,結果相減就是小數和; 5 輸出結果。 float a[10]; int s_int = 0; float s_float = 0; int i; for(i = 0 ;i <輸入10個數for(i = 0; i < 10; i ++)s_float -= s_int; //得到小數部分和。 printf("整數部分和為 %d, 小數部分和為%f\n", s_int, s_float);//輸出。 9樓:匿名使用者 int a[100],i;定義陣列 int sum1=0;儲存整數和 float sum2=0.0;儲存小數和 for(i=0;i<100;i++)} 10樓:匿名使用者 演算法思想:每乙個數除以一的商是整數部分,餘數是小數部分。 大概程式如下(未進行除錯) void main()} 11樓:匿名使用者 /* hello.c -- hello, world */#include "stdio.h" #include "conio.h" #define max 5 main() ;int i,j,sum=0; for(i=0;i printf("%d %f",sum,a); getch();} c語言中乙個數的小數如何表示 12樓:匿名使用者 4.2用c語言表示:double d = 4.2。c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。 1、float: float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點型別的單精度值具有 4 個位元組,包括乙個符號位、乙個 8 位 excess-127 二進位制指數和乙個 23 位尾數。 2、double: double(雙精度浮點數)使用 64 位(8位元組) 來儲存乙個浮點數。 它可以表示十進位制的15或16位有效數字。 擴充套件資料 (1) 浮點型與整型 將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意: 賦值時的型別轉換實際上是強制的。 (2) 單、雙精度浮點型 由於c語言中的浮點值總是用雙精度表示的,所以float 型資料只是在尾部加0延長為double型資料參加運算,然後直接賦值。double型資料轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。 13樓:blackpink_羅捷 兩種表示 方式:1、定點表示:必須有小數點。 例如:0.123, .123, 123.0。 2、指數表示:e或e之前必須有數字,指數必須為整數。 例如:12.3e3 ,123e2, 1.23e4。 注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。 定點小數是純小數,約定的小數點位置在符號位之後、有效數值部分最高位之前。若資料x的形式為x=x0.x1x2…xn(其中x0為符號位,x1~xn是數值的有效部分,也稱為尾數,x1為最高有效位),則在計算機中的表示形式為: 一般說來,如果最末位xn= 1,前面各位都為0,則數的絕對值最小,即|x|min= 2^(-n)。如果各位均為1,則數的絕對值最大,即|x|max=1-2^(-n)。所以定點小數的表示範圍是: 2^(-n)≤|x|≤1 -2^(-n)。 擴充套件資料 由於「編碼總位數為8」的限制,真值-128無法用原碼、反碼來表示,似乎不能用上述規則來求解補碼,但實際上是可行的——只要不管它的最高位即可,操作辦法如下: 將128化為二進位制為:1 0000000,最高位為1,可以只對捨去最高位後剩餘的7位進行處理即可,首先取反得:1111111,加1得: 1 0000000,最高位有進製需丟棄,即得:0000000,加上符號位就得補碼:1 0000000。 又如,當編碼總位數為4時,真值x=+0.101的原碼、反碼、補碼均為:0 101。 真值x=-0.101的原碼、反碼、補碼依次為:1 101、1 010、1 011。 同理,特例,-1的補碼為:1 000。 在定點小數中,小數點隱含在第一位編碼和第二位編碼之間 定點小數,是指小數點準確固定在資料某個位置上的小數,從實用角度看,都把小數點固定在最高資料位的左邊,小數點前邊再設一位符號位。按此規則,任何乙個小數都可以被寫成 :n = ns . n-1 n-2 … n-m。 14樓: 我想你的意思是這樣的,a變數為浮點型資料(4.2),想得知其小數部分。 不知道是不是呢? 如果是的話,那麼: float b = a-(int)(a); 15樓:匿名使用者 c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。 c語言中浮點數常量有兩種表示方式: 1、定點表示:(必須有小數點) 如:0.123, .123, 123.0。 2、指數表示:(e或e之前必須有數字,指數必須為整數)如:12.3e3 ,123e2, 1.23e4。 錯誤的寫法:e-5 ,1.2e-3.5,e3。 注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,請在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。 float f1 = 1.1f; //小寫f float f2 = 1.1f; //大寫f double d = 1.1; //double型別 16樓:中國中醫拔罐器 好像有什麼函式吧。 不過一般的思路都是。 double d=4.2; double m; m=d-int(d); printf("m=%0.1f",m ) //要幾位就零點幾位。 姬覓晴 2 接著我們儲存main.c檔案。3 這個時候我們把內容輸出,設定浮點型。也就是 f。4 但是輸出的時候預設有多位小數。5 於是我們可以設定 2f,也就是兩位數,因為我們寫了2。6 這個時候執行 的時候就會看到只有兩位小數了。 幸運的小李菲刀 輸出時?2f 即可指定輸出兩位小數 例題 356... int x,y 定義的時候如果不初始化,不同的環境會初始化不同的值,有的是0,有的不是,你的這個程式,x的結果是不定的,同時,有些環境下除錯也會報錯! 此處無名勝有名 c語言的賦值語句是從右到左執行的,比如 x y 1 意思就是 把y 加1後賦值給x但c語言的語序是從上到下執行的 本題中,當執行in... 兔丞飛 簡單的說switch語句也是屬於判斷語句,if else語句適合3個以內的判斷,但是多了用if就不太方便了,所以這時3個以上的判斷用switch語句就比較方便了,結構就像樓上的兄弟們那樣寫的,大概怎麼用我舉個例子你就懂了。例 判斷一週的食譜,就是星期幾的食譜是什麼,首先一個星期7天,那麼判斷...c語言中保留兩位小數如何寫,c語言中怎麼保留小數2位
C語言中怎麼計算x,y的值,c語言中(x,y)中怎麼計算
c語言中switch怎麼用,C語言中的SWITCH是什麼意思?