《如果我和我頭像上的人被困在電梯里會(huì)發(fā)生什么》2-編程-浮點(diǎn)數(shù)
第 2 章 編程-浮點(diǎn)數(shù)
警告:由于作者有精神問(wèn)題所以文章部分內(nèi)容可能不連貫或含有精神污染,如感到不適請(qǐng)立即退出頁(yè)面并向醫(yī)生咨詢(xún)。此文章所有內(nèi)容純屬虛構(gòu),均不在現(xiàn)實(shí)中存在。
終于放假了,我坐到電腦面前并打開(kāi)Visual Studio 2019準(zhǔn)備繼續(xù)寫(xiě)代碼。
之前的幾個(gè)星期雖然也不順利,但感覺(jué)挺順利的。她也讓我變了不少啊。
#include <iomanip>
#include <iostream>
int main() {
? ? using namespace std;
? ? double x;
? ? x = 0.2 + 0.4;
? ? cout<<setiosflags(ios::fixed)<<setprecision(24)<<x<<endl;
}
運(yùn)行出來(lái)的結(jié)果始終是 0.600000000000000088817842,而不是設(shè)想中的 0.6。
我正疑惑著,洛秋瀠在旁邊幽幽的來(lái)了一句:"這就是浮點(diǎn)數(shù)的誤差啊"。
由于并沒(méi)有完整的學(xué)習(xí)編程知識(shí),我只是在匯編語(yǔ)言里用過(guò)定點(diǎn)數(shù),根本不知道什么是浮點(diǎn)數(shù)。
她打開(kāi)瀏覽器,按下? F12,在控制臺(tái)輸入了 0.2+0.4 并回車(chē)。
控制臺(tái)返回了 0.6000000000000001,而不是設(shè)想中的 0.6。
"0.1 到 0.9 的 9 個(gè)小數(shù)中,只有 0.5 可以用二進(jìn)制精確的表示。"洛秋瀠邊寫(xiě)代碼邊和我道。"浮點(diǎn)數(shù)的精度丟失在每一個(gè)表達(dá)式,而不僅僅是表達(dá)式的求值結(jié)果。"
我不由得想到:"誤差一定是不好的嗎?"
"誤差是重要的,而且是必要的。因?yàn)橛姓`差,生物才能進(jìn)化。因?yàn)橛姓`差,宇宙才能運(yùn)行。因?yàn)橛姓`差。我才能和你遇見(jiàn)。"
"誤差啊。"我不由得想到因?yàn)楦↑c(diǎn)數(shù)誤差而導(dǎo)致限制游玩區(qū)域的Minceraft,在邊境之墻外面,是永久的不能保存的地方。
我不顧洛秋瀠的哭鬧將她抱到旁邊的床上,自己寫(xiě)著代碼。
已經(jīng)寫(xiě)了幾百萬(wàn)行,工程很快就要完成了。
//6 個(gè)小時(shí)后
終于寫(xiě)完了,窗外天色已經(jīng)非常黑了,系統(tǒng)時(shí)鐘已經(jīng)到第二天的4:31了。望了望窗外,已經(jīng)沒(méi)有幾個(gè)亮著的燈了,看了看屋里,洛秋瀠已經(jīng)趴在床上睡著了,真是太可愛(ài)了,要不是相機(jī)記錄不到她我真想拍照到儲(chǔ)存耗盡。
我按下了生成按鈕,然后趴到洛秋瀠旁邊也睡著了。
9:30,我醒來(lái)了,洛秋瀠早就醒了,現(xiàn)在倒懸在天花板上盯著我,見(jiàn)到我醒了,就撲到我身上,喂!不要那么誘惑人啊。
來(lái)到電腦面前,發(fā)現(xiàn)編譯成功了,我打開(kāi)調(diào)試窗口,準(zhǔn)備調(diào)試程序。
//評(píng)論區(qū)是文章不可分割的一部分