返回列表 上一主題 發帖

[發問] 計算過程中溢位

本帖最後由 stillfish00 於 2015-11-25 20:00 編輯

回復 4# EGBT
你可以看F1說明,尋找算術運算子中的 "* 運算子":
裡面有提到,
result 的資料型態通常與最精密的運算式相同。而精確度由最小到最大的順序是 Byte、Integer、Long、Single、Currency、Double和 Decimal。但以下是例外.......................(自己看說明的例外情況,我就不寫了)


2000 和 365 都是做為 Integer來運算,由上面說明知道運算結果也會存放在Integer資料型態的空間,但因超出 Integer資料型態可表達的範圍所以溢位了。

版大用 CLng(2000) * 365 解決,所以變成一個 Long乘上一個 Integer,因為 Long更精密,由上面說明知道運算結果也會存放在Long,所以沒溢位。

也可寫成 x= 2000& * 365,標明程式中的2000數字是一個Long的數字(或是兩個都標),意思是一樣的。
所以溢位跟你一開始說的四捨五入一點關係都沒有。
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 盡多少本份,就得多少本事。
返回列表 上一主題