C/C++ 中 float 和 double 的區別
眾所周知,在 C/C++ 中,我們需要使用 float 和 double 資料型別來表示浮點數,即帶有小數部分的數字。現在,我們可以根據這兩種資料型別提供的精度來區分它們。
簡單來說,double 的精度是 float 的 2 倍,這意味著 double 資料型別的精度是 float 資料型別的兩倍。
在精度方面,可以說明 double 對浮點數具有 64 位精度(1 位用於符號,11 位用於指數,52 位用於值),即 double 具有 15 位小數精度。而 float 對浮點數具有 32 位精度(8 位用於指數,23 位用於值),即 float 具有 7 位小數精度。
由於 double 比 float 精度更高,因此它所佔用的記憶體是 float 資料型別佔用記憶體的兩倍,這很明顯。
此外,這兩種資料型別的範圍可以表示為 ±3.40282347E+38F,即 float 的 6-7 個有效數字,以及 ±1.79769313486231570E+308,即 double 的 15-16 個有效數字。
根據以上幾點,我們可以說,如果不需要高精度,並且程式只需要儲存大量的小數陣列,那麼 float 是一種經濟高效的儲存資料方式,並且可以節省記憶體;而當需要更高精度時,則應選擇 double。
廣告