2016年11月19日 星期六

浮點數float、double & long double的用法

資料類型位元bits/位元組bytes有效位數範圍數的範圍(取log)
float
32/4
6~8
-37~38
double
64/8
15~16
-307~308
long double
128/16
18~19
-4931~4932

程式範例

#include <stdio.h>
#include <stdlib.h>
int main()
{
      float x = 21247.444444444444444;
      double y = 21247.444444444444444;
      printf("%.14f\n",x);
      printf("%.14lf\n",y);
      system("pause");
}

輸出結果


程式解析

由上述例子可以很明顯得看出:float所宣告出來的變數最多只能顯示7位有效數字(包含5個整數、4個小數);而double所宣告出來的變數最多只能顯示16位有效數字(包含5個整數、11個小數)。

Note:上述所整理的表格之有效位數僅供參考,最精確的方式還是要以bits去判斷。

沒有留言:

張貼留言