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

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

為什么不會停下

為什么不會停下

C
qq_放心不下_kuHQY1 2019-01-14 15:01:39
#include<stdio.h>int main(){? ? double i;? ? for(i = 0; i != 10; i += 0.1)? ? ? ? printf("%.1f\n", i);? ? return 0;}
查看完整描述

1 回答

已采納
?
onemoo

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

很可能是因為“浮點(diǎn)漂移”。浮點(diǎn)漂移是指:十進(jìn)制小數(shù)并不能精確地表示為二進(jìn)制浮點(diǎn)數(shù)(所以浮點(diǎn)數(shù)才有精度一說),而在連續(xù)進(jìn)行浮點(diǎn)數(shù)運(yùn)算后其誤差很可能會進(jìn)一步擴(kuò)大。

在你的例子中,即便誤差并不大,但由于你用 == 進(jìn)行判斷,這樣只有完全相同的兩個浮點(diǎn)數(shù)才會被判斷為“相等”,而之前所說的誤差引起的數(shù)值差異就會導(dǎo)致理論上應(yīng)該相等的兩個浮點(diǎn)數(shù)被判斷為不相等。


如果你覺得輸出的數(shù)字都很復(fù)合預(yù)期(沒有什么誤差)啊,那是因為你用 printf 輸出的精度設(shè)置得太低,你試試用默認(rèn)精度(%f)來輸出看看,如果還看不出差異就用更高的輸出精度試試(比如 %.15f)。

查看完整回答
1 反對 回復(fù) 2019-01-14
  • 1 回答
  • 0 關(guān)注
  • 771 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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