# include
intmain
(void
)
/*
輸出結果:
sum = 5.187378
k = 5.567890
///-------------------------------
/總結:
0、《郝斌c語言自學教程》_浮點型的儲存 所帶來的問題
1、除號/,要求被除數或者除數其中乙個是浮點型,結果才能是浮點型
2、強制型別轉化:
格式:
(資料型別)(表示式)
功能: 把表示式的值強制轉化為前面所執行的資料型別
例子: (int)(4.5+2.2) 最終值是 6
(float)(5) 最終值是 5.000000
3、雖然float i, sum = 0這樣寫,輸出的結果是正確的。
但是,實際上,這**是不對的。 這涉及
浮點數的儲存所帶來的問題:
float 和 double 都不能保證可以 精確地儲存乙個小數
舉例:
有乙個 浮點型變數 x , 如何判斷 x 的值是否是 零
if (|x - 0.000001| <= 0.000001)
是零 else
不是零
(分析:如果x和乙個非常小的數 相減 所得數字 的絕對值)
所以:自增自減的變數,即 i,一般都是 整型, 方便精確儲存
因為當儲存值超過 float 和 double 的精度範圍,輸出結果會有誤差
《強制型別轉化與浮點數的儲存問題》
強制型別轉化 格式 資料型別 表示式 功能 把表示式的值強制轉化為前面所執行的資料型別。例子 int 3.3 2.2 最終值是5 float 6 最終值是6.000000 求1 1 2 1 3.1 100 include void main printf f n sum 輸出結果是 5.187378...
C語言浮點數儲存方式
對於浮點型別的資料採用單精度型別 float 和雙精度型別 double 來儲存,float資料占用32bit,double資料占用64bit.其實不論是float型別還是double型別,在計算機記憶體中的儲存方式都是遵從ieee的規範的,float 遵從的是ieee r32.24 而double...
C語言浮點數儲存方式
對於浮點型別的資料採用單精度型別 float 和雙精度型別 double 來儲存,float資料占用 32bit,double資料占用 64bit.其實不論是float型別還是double型別,在計算機記憶體中的儲存方式都是遵從ieee的規範的,float 遵從的是ieee r32.24 而doub...