C語言入門之浮點數(shù)
實際開發(fā)中使用double,而不使用float
浮點數(shù)的輸出
float
采用%f占位符。
double
采用%lf占位符。測試結果證明,double不可以用%f輸入,但可以用%f輸出,但是不建議采用%f,因為不同的編譯器可能會有差別。
long double
采用%Lf占位符,注意,L是大寫。
浮點數(shù)輸出缺省顯示小數(shù)點后六位。
浮點數(shù)采用%lf輸出,完整的輸出格式是%m.nlf,指定輸出數(shù)據(jù)整數(shù)部分和小數(shù)部分共占m位,其中有n位是小數(shù)。如果數(shù)值長度小于m,則左端補空格,若數(shù)值長度大于m,則按實際位數(shù)輸出。
常用的庫函數(shù)
在接下來的內容中,我只介紹double,不再介紹float和long double兩種數(shù)據(jù)類型相關的知識。
以下是常用的浮點數(shù)函數(shù),必須掌握。
double atof(const char *nptr);?
??????? // 把字符串nptr轉換為doubledouble fabs(double x);??
????????????? // 求雙精度實數(shù)x的絕對值double pow(double x, double y);??
???? // 求 x 的 y 次冪(次方)double round(double x);???
??????????? // double四舍五入double ceil(double x);??
????????????? // double向上取整數(shù)double floor(double x);
?????????????? // double向下取整數(shù)double fmod(double x,double y);???
??? // 求x/y整除后的雙精度余數(shù)
// 把雙精度val分解成整數(shù)部分和小數(shù)部分,整數(shù)部分存放在ip所指的變量中,返回小數(shù)部分。double modf(double val,double *ip);
使用floor函數(shù)。floor(x)返回的是小于或等于x的整數(shù)。
如: floor(10.5) == 10 floor(-10.5) == -11。
使用ceil函數(shù),ceil(x)返回的是大于x的整數(shù)。
還有一些數(shù)據(jù)計算函數(shù),如正弦、對數(shù)、指數(shù)等,實際開發(fā)中極少使用,大家要用的時候再查資料,我就不介紹了。
整數(shù)與浮點數(shù)的轉換
在浮點數(shù)的取值范圍內,整數(shù)轉換為浮點數(shù)不會有精度的損失,浮點數(shù)轉換為整數(shù)后,會丟棄小數(shù)位。
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
詳解C++中typedef 和 #define 的區(qū)別
這篇文章主要介紹了C++中typedef 與 #define 的區(qū)別,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09C語言關于自定義數(shù)據(jù)類型之枚舉和聯(lián)合體詳解
枚舉顧名思義就是把所有的可能性列舉出來,像一個星期分為七天我們就可以使用枚舉,聯(lián)合體是由關鍵字union和標簽定義的,和枚舉是一樣的定義方式,不一樣的是,一個聯(lián)合體只有一塊內存空間,什么意思呢,就相當于只開辟最大的變量的內存,其他的變量都在那個變量占據(jù)空間2021-11-11