浮點數即 小數
一般用 double型雙精度浮點數 %lf
float資料型別 單精度浮點數
表達的是乙個近似的數,到小數點後8位時誤差為 1 不能用 eg: 9.99999999 %f
用float定義出來 為10.00000000
#include#include#includeint main( )
ii=9.900000
ii=9.990000
ii3=9.999000
ii4=9.999900
ii5=99.999992
ii6=1000.000000
ii7=10000.000000
ii8=100000.000000
ii8==999999.99999999
用==表示兩個整數或者字元相等 對於兩個浮點數,就不相等。
怎麼判斷兩個浮點數相等? 如果兩個浮點數處在在一定誤差範圍內可以判斷出是否相等
eg: if((100-0.000001)&&(100+ 0.000001)
double型雙精度浮點數
double 表達的也是乙個近似的數,到第17位時 誤差為1,具體同float%lf
用==可以比較兩個double型別數值是否相等 123456780123.45 一萬yi
long double
%lf
總結 如果要顯示小數點後n位 用 %.nlf ,eg :double ii=9.5;
printf("%.2lf",9.50);
庫函式
double atof(const char *nptr); //把字串nptr轉換為double
#include#include#includeint main( )
double fabs(double x); // 求雙精度實數x的絕對值
#include#include#include#includeint main( )
~
double pow(double x, double y); // 求 x 的 y 次冪(次方)
#include#include#include#includeint main( )
double round(double x); // double四捨五入 對小數點後一位進行四捨五入
#include#include#include#includeint main( )
~
double ceil(double x); // double向上取整數
ceil()是#include 中的函式,雖然程式中已經包含了該標頭檔案,但是編譯的時候還是說這個函式沒有定義(也就是"對ceil未定義的引用)
需要重新編譯,並在最後加上"-lm"
12.1 取完後為13
double floor(double x); // double向下取整數
12.8 取完後為12
double fmod(double x,double y); // 求x/y整除後的雙精度餘數
#include#include#include#includeint main( )
~
結果是2.12 整數部分除以5之後餘下的部分
gcc -g -o 。。。。。。-lm(加上)
double modf(double val,double *ip);
// 把雙精度val分解成整數部分和小數部分,整數部分存放在ip所指的變數中,返回小數部分。
#include#include#include#includeint main( )
~
結果是:0.100000,12.000000
整數轉換為浮點數
#include#include#include#includeint main( )
科學計數法
科學計數法採用%e或%e輸出,完整的輸出格式是%m.ne或%m.ne,指定輸出資料整數部分和小數部分共佔m位,其中有n位是小數。如果數值長度小於m,則左端補空格,若數值長度大於m,則按實際位數輸出。
#include#include#include#includeint main( )
dd is 1.23e+08
dd is -1.23e+08
dd is 1.23e-08
5)重寫浮點數的常用庫函式,實現其功能,函式的宣告如下:
double fabs(const double x); // 求雙精度實數x的絕對值
double round(const double x); // double四捨五入
double ceil(const double x); // double向上取整數
double floor(const double x); // double向下取整數
// 把雙精度val分解成整數部分和小數部分,整數部分存放在ip所指的變數中,返回小數部分。
double modf(double val,double *ip);
double fabs(const double x); // 求雙精度實數x的絕對值
#include#include#includedouble fabs(const double x);
int main ()
double fabs(const double x)
double round(const double x); // double四捨五入
#include#include#include#includedouble ip;
double round(const double x); // double四捨五入
int main ()
double round(const double x)
double ceil(const double x)
double floor(const double x); // double向下取整數
#include#include#include#includedouble ip;
double floor(const double x);// double向上下取整數
int main()
double floor(const double x)
// 把雙精度val分解成整數部分和小數部分,整數部分存放在ip所指的變數中,返回小數部分。
double modf(double val,double *ip);
#include#include#include#include//把雙精度val分解成整數部分和小數部分,整數部分存放在ip所指的變數中,返回小數部分。
double modf(double val,double *ip);
int main()
// 把雙精度val分解成整數部分和小數部分,整數部分存放在ip所指的變數中,返回小數部分。
double modf(double val,double *ip)
ceil()是#include 中的函式,雖然程式中已經包含了該標頭檔案,但是編譯的時候還是說這個函式沒有定義(也就是"對ceil未定義的引用)
需要重新編譯,並在最後加上"-lm"
gcc -o 5 5.c -lm
請輸入浮點數:
5.4輸入浮點數的整數部分是5.000000,小數部分是0.400000
C語言再學習 浮點數
參考 你應該知道的浮點數基礎知識 浮點數的表示 浮點數的表示和基本運算 單精度浮點float 可以精確到小數點後6位 雙精度浮點double 可以精確到小數點後12位 c可以通過f或f字尾是編譯器把浮點常量當做float型別,比如2.3f和9.11e9f。l或l字尾使乙個數字成為long doubl...
c語言整數轉浮點數 浮點數的秘密
我們在學習 c 語言時,通常認為浮點數和小數是等價的,並沒有嚴格區分它們的概念,這也並沒有影響到我們的學習,原因就是浮點數和小數是繫結在一起的,只有小數才使用浮點格式來儲存。其實,整數和小數可以都使用定點格式來儲存,也可以都使用浮點格式來儲存,但實際情況卻是,c 語言使用定點格式儲存整數,使用浮點格...
C語言 浮點數格式
description 輸入n 0 n 10000 個浮點數,要求把這n個浮點數重新排列 並非排序,而是對齊 後再輸出。每個浮點數中都有小數點且總長度不超過50位。input 第1行是乙個正整數n n 10000 後面n行每行乙個浮點數,每個浮點數中都保證小數點會出現。浮點數的長度不超過50位,注意...