C語言 強制型別轉化 浮點數的儲存

2021-10-10 00:08:14 字數 809 閱讀 2358

# 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...