程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> double型浮點數能精確到多少位小數?,double點數

double型浮點數能精確到多少位小數?,double點數

編輯:關於C語言

double型浮點數能精確到多少位小數?,double點數


問題2:double型浮點數能精確到多少位小數?或者,這個問題本身值得商榷?

既然double是浮點數,它的小數點的位置是“浮動”的,所以很難說double類型能精確到小數點後面幾位。通常這個關於精度的問題都是通過它能表示的有效數字(十進制)的位數來表示的。遵循IEEE標准的8字節(64位)的double能表示的有效數字的位數是:15 ~ 16

測試一個:

#include <stdio.h>
int main(){
    printf("%.20lf",1.0/3.0);
}

結果:

可見在第17位小數(有效數字)處數字發生了失真,所以應該是16位

問題3:double型浮點數最大正數值和最小正數值分別是多少?(不必特別精確)

這種方法幾乎算不出:

#include <stdio.h>
int main(){
    double a = 0, b = 0;
    while(a<=b){
        a = b;
        b++;
    }
    printf("%f",a);
}

問題4:邏輯運算符號“&&“,”||“,”!“ 的相對優先級是怎樣的?

#include <stdio.h>
int main(){
    int a = 0, b = 1, c = 1;
    printf("%d",a&&b||c);
}

輸出為1, 可見&&>||

#include <stdio.h>
int main(){
    int a = 0, b = 0;
    printf("%d",!a&&b);
}

輸出為0, 可見!> &&

綜上!>&&>||

另外注意C語言中的邏輯運算符都是短路運算符,一旦能夠確定整個表達式的值,就不再繼續計算

 


double型浮點數可以精確到多少位小數

6位
 

float類型與double類型各精確到幾位小數點

單精度浮點型 float 32位 約+-(E-38~E38)
雙精度浮點型 double 64位 約+-(E-308~E308)
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved