您好,登錄后才能下訂單哦!
這篇文章主要介紹“C語言中的小數怎么表現”,在日常操作中,相信很多人在C語言中的小數怎么表現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C語言中的小數怎么表現”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
小數分為整數部分和小數部分,它們由點號.分隔,例如0.0、75.0、4.023、0.27、-937.198-0.27等都是合法的小數,這是最常見的小數形式,我們將它稱為十進制形式。
此外,小數也可以采用指數形式,例如7.25×102、0.0368×105、100.22×10-2、-27.36×10-3等。任何小數都可以用指數形式來表示。
C語言同時支持以上兩種形式的小數。但是在書寫時,C語言中的指數形式和數學中的指數形式有所差異。
aEn或aen
a為尾數部分,是一個十進制數;n為指數部分,是一個十進制整數;E或e是固定的字符,用于分割尾數部分和指數部分。整個表達式等價于a×10n。
指數形式的小數舉例:
2.1E5=2.1×105,其中2.1是尾數,5是指數。
3.7E-2=3.7×10-2,其中3.7是尾數,-2是指數。
0.5E7=0.5×107,其中0.5是尾數,7是指數。
C語言中常用的小數有兩種類型,分別是float或double;float稱為單精度浮點型,double稱為雙精度浮點型。
不像整數,小數沒有那么多幺蛾子,小數的長度是固定的,float始終占用4個字節,double始終占用8個字節。
小數也可以使用printf函數輸出,包括十進制形式和指數形式,它們對應的格式控制符分別是:
%f以十進制形式輸出float類型;
%lf以十進制形式輸出double類型;
%e以指數形式輸出float類型,輸出結果中的e小寫;
%E以指數形式輸出float類型,輸出結果中的E大寫;
%le以指數形式輸出double類型,輸出結果中的e小寫;
%lE以指數形式輸出double類型,輸出結果中的E大寫。
下面的代碼演示了小數的表示以及輸出:
#include
#include
intmain()
{
floata=0.302;
floatb=128.101;
doublec=123;
floatd=112.64E3;
doublee=0.7623e-2;
floatf=1.23002398;
printf("a=%e\nb=%f\nc=%lf\nd=%lE\ne=%lf\nf=%f\n",a,b,c,d,e,f);
return0;
}
運行結果:
a=3.020000e-01
b=128.100998
c=123.000000
d=1.126400E+05
e=0.007623
f=1.230024
1)%f和%lf默認保留六位小數,不足六位以0補齊,超過六位按四舍五入截斷。
2)將整數賦值給float變量時會變成小數。
3)以指數形式輸出小數時,輸出結果為科學計數法;也就是說,尾數部分的取值為:0≤尾數<10。 4)b的輸出結果讓人費解,才三位小數,為什么不能精確輸出,而是輸出一個近似值呢?這和小數在內存中的存儲形式有關,很多簡單的小數壓根不能精確存儲,所以也就不能精確輸出,我們將在下節《小數在內存中是如何存儲的,揭秘諾貝爾獎級別的設計(長篇神文)》中詳細講解。 另外,小數還有一種更加智能的輸出方式,就是使用%g。%g會對比小數的十進制形式和指數形式,以最短的方式來輸出小數,讓輸出結果更加簡練。所謂最短,就是輸出結果占用最少的字符。
到此,關于“C語言中的小數怎么表現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。