/ / / / / /

上一篇 下一篇 同標題 發表文章 文章列表

作者  weihan (天天天藍) 站內  CPP_DS
標題  一個有關無號整數的小錯誤
時間  2016/03/14 Mon 15:11:18

今天寫了一個程式是這樣:
wstring  foo ;
...

double  w = 0.8 * ( foo.size() - 3 ) ;

結果當 foo.size() < 3 時,數字變很大。
原因當然是因為 foo.size() 回傳無號整數,一個無號整數減去一般整數,
結果仍是無號整數,也就是若是 foo.size() < 3 ,則計算上雖然是
負數,但以無號整數表示,因此 w 就變得很大。

寫程式還是要小心。

--
===================================================================
*               人生的意義 : 盡責任  負責任                      *
*               人生的目的 : 受報  還願  行善                *
*               人生的價值 : 奉獻  付出                        *
================================================== 聖嚴法師  語 ===

--
發信站 [中央數學  織夢天堂 bbs.math.ncu.edu.tw]
  •FROM [weihan 從 ziyou4.math.ncu.edu.tw 發表]

上一篇 下一篇 同標題 發表文章 文章列表