##使用浮點數 浮點數包含的值帶小數點,也能夠表示分數和整數函數
下面是一些浮點數code
1.6
、0.00008
、7655.899
、100.0
ci
用指數和C語言來表示字符串
1.6
== 0.16E1
E
表明10,1
表明1次方編譯器
###定義浮點數變量it
<!-- lang: cpp --> /* float類型佔用4字節,精確到6至7位小數,小數後面加f double類型佔用8字節,精確到15位小數 long double類型佔用12字節,精確到18位小數,小數後面加L */ int main(){ float aa = 45.0f; float bb = 7.0f; printf("aa/b=%f\n",aa/bb); //6.428571 return 0; }
###控制輸出中的小數位數io
<!-- lang: cpp --> //%.2f中的.2說明控制小數位後面爲2位,設置成.0f表明後面沒有小數位數 printf("aa/bb=%.2f",aa/bb); //6.42
###控制輸出的字段寬度編譯
<!-- lang: cpp --> //輸出的字段寬度是輸出值所使用的總字符數(包括空格) //指定寬度時,數值默認是右對齊,若是但願左對齊,只須要在%的後面添加一個負號 printf("aa/bb=%5.3f",aa/bb);
###運算的順序變量
<!-- lang: cpp --> //它的計算順序是 //先計算最內層的括號,即5+4 //而後是先乘除後加減,即9*3,而後27+3 //最後2*30 = 60 2*(3+3*(5+4)) = 60
###利用輸入的直徑計算周長和麪積float
<!-- lang: cpp --> int main(void){ //設定初始值,以防因爲使用未賦值的變量引發垃圾值 float radius = 0.0f; //半徑 float diameter = 0.0f; //直徑 float circumference = 0.0f; //周長 float area = 0.0f; //面積 float Pi = 3.14159265f; //π printf("請輸入一個直徑數字:"); //scanf()是另外一個須要包含頭文件stdio.h的函數 //它專門處理鍵盤輸入,提取經過鍵盤輸入的數據,按照第一個參數指定的方式解釋它 //第一個參數是放在雙引號內的一個控制字符串,爲float類型 //scanf()將float類型的數存到變量diameter中 //控制字符串是控制輸入,而不是輸出。 scanf("%f",&diameter); //&符號叫作尋址操做符,它容許讀入的數值存進變量diameter radius = diameter / 2.0f; circumference = 2.0 * Pi * radius; area = Pi * radius*radius; printf("\n周長爲:%.2f",circumference); //寬度爲默認,小數位爲2位 printf("\n面積爲:%.2f\n",area); return 0; }
###讀取數據的格式說明符
%hd
%d
%ld
%f
或%e
%e
表明使用指數模式,好比32E-5%lf
或%le
%lf
表明雙精度浮點數 %f
表明普通浮點數###定義命名常量 例如像π
的值就是一個不會改變的值,這種值就要設置成常量,使之在程序中保持不變,以避免帶來計算錯誤
第一種方法(將π定義爲一個符號)
<!-- lang: cpp --> #define PI = 3.14159f; //定義了一個常量,常量的命名一般全是大寫字母,與變量區分開 int main(){ printf("π=%f",PI) }
第二種方法(用const關鍵字修飾)
將π
的值定義成變量,而且用const關鍵字修飾,固化變量,告訴編譯器,它的值是固定不變的
<!-- lang: cpp --> const float Pi = 3.14159f; //定義了Pi是一個float類型的常量值
###極限值
計算機中的數值老是受限於該機器能夠存儲的值域 對浮點數的極限值使用說明符%e,表示這個數值是指數形式 用%u輸出無符號整數值 若是用%d輸出無符號類型的最大值,則最左邊的爲(帶符號類型的符號位)爲1的數值就得不到正確的解釋
整數類型
頭文件<limits.h>
中定義的符號表示每種類型的極限值,以下所示
char
short
int
long
long long
如何應用
<!-- lang: cpp --> //無符號整數類型的下限都是0,因此他們沒有特定的符號 #include <limits.h> int main(){ //初始化一個int變量,這個語句把number設置爲最大值,編譯器會利用該最大值編譯代碼 int number = INT_MAX; //打印整數類型的上限值和下限值 printf("int MIN AND MIN is %d ~ %d\n",INT_MIN,INT_MAX); printf("long MIN AND MIN is %d ~ %d\n",LONG_MIN,LONG_MAX); printf("short MIN AND MIN is %d ~ %d\n",SHRT_MIN,SHRT_MAX); printf("long long MIN AND MIN is %d ~ %d\n",LLONG_MIN,LLONG_MAX); return 0; }
小數類型
<float.h>
頭文件定義了表示浮點數的符號
float
double
long double
######sizeof運算符
<!-- lang: cpp --> /* sizeof運算符能夠肯定給定的類型佔據多少字節 例如表達式sizeof(int)會獲得int類型的變量所佔的字節數 所得的值是一個size_t類型的整數,對應一個基本整數類型 size_t類型在標準頭文件<stddef.h>和其餘頭文件中定義 可是因爲不一樣的C庫中有所不一樣,因此最好使用size_t變量存儲sizeof運算符生成的值 例如size_t size = sizeof(long long); */ int main(void){ //由於sizeof運算符的結果是一個無符號整數,因此用%u說明符輸出它 printf("Variables of type char occupy %u bytes\n",sizeof(char)); printf("Variables of type short occupy %u bytes\n",sizeof(short)); printf("Variables of type int occupy %u bytes\n",sizeof(int)); printf("Variables of type long occupy %u bytes\n",sizeof(long)); printf("Variables of type long long occupy %u bytes\n",sizeof(long long)); printf("Variables of type double occupy %u bytes\n",sizeof(double)); printf("Variables of type float occupy %u bytes\n",sizeof(float)); printf("Variables of type long double occupy %u bytes\n",sizeof(long double)); return 0; }