程序員寫的程序為什么會有 bug?

程序員為什么要一直改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ù)字過大、過小都會提示超出范圍。這下終于沒問題了,你心想。

過了幾天,你在頭條上看到一個標題“為啥程序員不能一次性把程序寫好?”

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容