程序員為什么要一直改Bug窿给?就這么說吧贵白,你是一個優(yōu)秀的程序員,現(xiàn)在被要求寫一段程序:“輸入兩個數(shù)A崩泡、B禁荒,輸出它們的和〗亲玻”
題目甚是簡單呛伴,你大筆一揮,寫下:輸入“A”谒所、“B”热康;計算“C=A+B”;輸出“C”劣领。
你自己測試了一下:輸入“1”姐军、“2”;輸出“3”尖淘。程序很棒奕锌,于是你交給用戶了。
用戶:輸入“127”村生、“1”惊暴;輸出“-128”。
你思考了一下趁桃,原來是8位int只能支持-128~127的整數(shù)辽话。于是你大筆一揮,改成了64位的int卫病,這下能支持-2^63~2^63-1了油啤。順便,你還編寫了一段數(shù)據(jù)驗證的判斷蟀苛,如果超出int的范圍還會提示“數(shù)值過大”村砂。非常貼心。
用戶:輸入“1.5”屹逛、“2.5”;輸出“3”汛骂。
你心想罕模,當時沒人告訴我會有小數(shù)計算啊,過幾天豈不是還會有無理數(shù)運算帘瞭。你和用戶一頓溝通淑掌,他向你發(fā)誓最多只會有小數(shù)計算,絕對不會有無理數(shù)蝶念。于是你把數(shù)據(jù)類型改成了double抛腕,這下可以支持小數(shù)了芋绸。
用戶:輸入“0.1”、“0.2”担敌;輸出“0.300000000000004”摔敛。
你回顧了一下大學學到的知識,想起double類型并不是那么精確全封。所幸用戶不是開銀行的马昙,對數(shù)據(jù)精確性要求不那么高,甚至偏差個±0.01都能接受刹悴。于是你在數(shù)據(jù)輸出時四舍五入了一下行楞,保留兩位小數(shù),這下0.1+0.2=0.3了土匀。
用戶:輸入“一”子房、“二”;輸出“0”就轧。
你和用戶大吵了一架证杭,終于說服他不在輸入框里填漢字。以防萬一钓丰,你給數(shù)據(jù)輸入加了一段驗證躯砰,只接受兩個帶符號小數(shù)。而且對于數(shù)字過大携丁、過小都會提示超出范圍琢歇。這下終于沒問題了,你心想梦鉴。
過了幾天李茫,你在頭條上看到一個標題“為啥程序員不能一次性把程序?qū)懞茫俊?/p>