第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c語言,浮點(diǎn)數(shù)做for循環(huán),然后if判斷,為什么0.5的遞增就可以輸出結(jié)果,而其他(例如0.1的遞增)就不可以?

c語言,浮點(diǎn)數(shù)做for循環(huán),然后if判斷,為什么0.5的遞增就可以輸出結(jié)果,而其他(例如0.1的遞增)就不可以?

如上圖,以下是代碼#include<stdio.h>int main (){ double a,b,c,d; for(a=-15;a<15;a=a+0.1){ for(b=-15;b<15;b=b+0.1){ if(a+b==8){ for(c=-15;c<15;c=c+0.1){ if(a+c==13){ for(d=-15;d<15;d=d+0.1){ if(c-d==6&&b+d==8){ printf("%f,%f,\n%f,%f\n\n",a,b,c,d); } } } } } } } return 0;}
查看完整描述

4 回答

?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個贊

正因?yàn)楦↑c(diǎn)數(shù)表示得不精確,多次運(yùn)算后可能會發(fā)生數(shù)據(jù)“漂移”的現(xiàn)象。

實(shí)踐中判斷兩個浮點(diǎn)數(shù)是否相等通用這樣的辦法:用兩個浮點(diǎn)數(shù)差的絕對值和一個很小的數(shù)(如0.000001或選擇適當(dāng)?shù)木龋┫啾容^,如果差異比參考值小就認(rèn)為它們相等。

查看完整回答
反對 回復(fù) 2016-11-19
?
隕星復(fù)燃

TA貢獻(xiàn)6條經(jīng)驗(yàn) 獲得超1個贊

我覺得之前那位說得對,

符點(diǎn)數(shù)存儲標(biāo)準(zhǔn)IEEE754,

符點(diǎn)數(shù)是采用二進(jìn)制科學(xué)計數(shù)法來進(jìn)行存儲的,因此,絕大多數(shù)的數(shù)在計算機(jī)中是不能 精確 表示的


查看完整回答
反對 回復(fù) 2016-11-18
?
NoBB_

TA貢獻(xiàn)13條經(jīng)驗(yàn) 獲得超11個贊

0.5等于2的-1次方,計算機(jī)可以準(zhǔn)確表示;而0.1,不能精確表示,只能盡量精確; 即c-d或b+d不會是個整數(shù)。

查看完整回答
反對 回復(fù) 2016-11-18
?
RoughColorText

TA貢獻(xiàn)11條經(jīng)驗(yàn) 獲得超10個贊

是和這個有關(guān)系嗎?

符點(diǎn)數(shù)存儲標(biāo)準(zhǔn)IEEE754,

符點(diǎn)數(shù)是采用二進(jìn)制科學(xué)計數(shù)法來進(jìn)行存儲的,因此,絕大多數(shù)的數(shù)在計算機(jī)中是不能 精確 表示的.
如果兩個數(shù)a b都是常數(shù)賦值,這樣比較,應(yīng)該不會有問題,如:double a=5.3,b=5.3;
if ( a == b )
{
printf("a=b\n");
}
這時會輸出a=b
如果a或b是經(jīng)過運(yùn)算后得到的值,這時就不一定是一個精確的你想要的值了,如:
double b=2.6+2.7,a=5.3;
if ( a == b )
{
printf("a=b\n");
}
這時就不一定能輸出a=b了!

那為什么以0.5遞增的時候又可以了?

查看完整回答
反對 回復(fù) 2016-11-18
  • 4 回答
  • 0 關(guān)注
  • 4308 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號