C語言double型資料比較大小出錯

時間 2021-08-30 10:14:42

1樓:匿名使用者

都是同樣的錯誤, 'double *' to 'double'

假設這樣就是錯的,因為b是a的指標,而不是a的值

對照程式改一下吧,不懂的繼續追問

2樓:

if(b==a[(i+n)/2]) // b 是double型別,a[i] 會被隱式的轉換成double型別,

而,double 型別是不能直接用「==」比大小的。因為double型別或float型別都是有精度的,其實都是取的近似值,所以有個誤差。

if(b-a[(i+n)/2]<1e-8) // 只要相減的值在你規定的大小範圍內就可以認為是相等的。

c語言,double型別數值比較為什麼出錯,如何比較兩個double型別大小?

3樓:匿名使用者

scanf("%lf",&num);

double型別對應格式說明符%lf

注意是小寫的字母l,不是數字1或i的大寫字母

4樓:gta小雞

讀double型別資料用%lf而不是%d。

另外double型別的比較有陷阱,最好不要用==、<、>等符號直接比較。

c語言 int型別的可以和double型別的比較大小嗎?

5樓:小羊羊

c語言 int型別的可以和double型別的大小可以比較。

int a=2;

double b=1.1

//隱式轉換,相當於if( (double)a >b )if( a> b)

C語言中DOUBLE型資料儲存結果

釋夕楊歌 十進位制實數轉化為二進位制,往往不能用有限的位元數精確表示。double型規定了用幾位元作指數,幾位元代表精度 即有效數字 這對十進位制實數的儲存精度進一步加了限制。 朱禮祭君 老譚的書上有 實型資料一般佔4個位元組 32位 記憶體空間。按指數形式儲存。實數3.14159在記憶體中的存放形...

c語言中int型變數加上double型的變數

程振 會將int型別轉換成double型別再與double型別的變數相加。型別不一樣的數相加,首先將型別轉換成一樣的然後相加,轉換原則,短型別向長型別看齊,長短指在記憶體中所佔空間的長短 得出的結果是double型.這個不需要強制轉換的,系統會自動轉換的. double,計算時會自動轉化之doubl...

C語言中實型資料,float和double,可以指哪些數?什麼是實型

大 實型資料分為實型常量和實型變數,在計算機中的實型數以浮點形式表示,實型常量既可以是實數,也可以是浮點數。如3.14159等。實型變數分為單精度型 float 雙精度型 double 和長雙精度型 long double 實型可以說是實數。 float和doule指的數一樣 只不過進度不同 dou...