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

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

為什么我看到一個雙變量初始化為一些值,如21.4為21.399999618530273?

為什么我看到一個雙變量初始化為一些值,如21.4為21.399999618530273?

為什么我看到一個雙變量初始化為一些值,如21.4為21.399999618530273?double r = 11.631;double theta = 21.4;在調(diào)試器中,如下所示11.631000000000000和21.399999618530273.我怎么才能避免這種情況?
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

這些精度問題是由于內(nèi)部表示法對于浮點數(shù),你沒有什么可以避免的。

順便說一下,在運行時打印這些值仍然可以得到正確的結(jié)果,至少使用現(xiàn)代的C+編譯器是這樣的。對于大多數(shù)操作來說,這并不是什么大問題。


查看完整回答
反對 回復(fù) 2019-06-10
?
慕娘9325324

TA貢獻1783條經(jīng)驗 獲得超4個贊

它處理Excel 2007中類似的二進制浮點精度問題:

看到結(jié)尾有很多0110 0110 0110嗎?那是因為0.1二進制沒有精確的表示..這是一個重復(fù)的二進制數(shù)。就像1/3沒有小數(shù)表示一樣。1/3是0.33333333,你必須永遠寫3。如果你失去耐心,你會得到一些不準確的東西。

所以你可以想象,在十進制中,如果你試著做3*1/3,而你沒有時間永遠寫3的話,你得到的結(jié)果將是0.99999999,而不是1,人們會因為你錯了而生氣。


查看完整回答
反對 回復(fù) 2019-06-10
?
躍然一笑

TA貢獻1826條經(jīng)驗 獲得超6個贊

如果您有如下所示的值:

double theta = 21.4;

你想做的是:

if (theta == 21.4){}

你必須有點聰明,你需要檢查θ的值是否是真的接近21.4,但不一定是這個值。

if (fabs(theta - 21.4) <= 1e-6){}


查看完整回答
反對 回復(fù) 2019-06-10
  • 3 回答
  • 0 關(guān)注
  • 639 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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