看板 Office 關於我們 聯絡資訊
軟體:Office Excel 版本:2010 我想要用時間來進行條件判斷,因為時間資料來源是Timer(自午夜迄今的秒數) 我想設定中午12點開始 於是寫了─ If 12 * 60 * 60 < Timer then . .. ... (以下省略) End If 但是執行的時候會產生錯誤訊息"溢位" 於是我進一步測試下列運算─ MsgBox 12 * 60 * 60 = 43200 結果還是顯示"溢位",但是改成─ MsgBox 43200 = 43200 '(把12*60*60的運算直接算出來=43200) 結果是正確的,這是怎麼回事呢? 進一步試驗,如果是 11.999999 * 60 * 60 就不會產生溢位錯誤 難道比較運算子有內定的資料格式,導致我的乘法運算產生錯誤? 因為上面提到的需求,我需要一個 小時 * 60 * 60 的寫法來快速變更設定時間 所以才會想要從這邊了解,如果可以得到答案就能夠更準確的對應, 不然最後可能也就是多設定個變數先算出秒數再來比較了吧... 希望有前輩不吝指點,謝謝!! -- ┌─────────────────────────────┐ │就這樣,終於到了啟程的日子。 │ │和來機場送行的朋友們說著玩笑話,其實內心恍恍惚惚像在作夢。│ │也似乎是因為,為了走到「出發」這一步,耗盡了全部心力。 │ └─────────────────石田裕輔《不去會死!》─┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.249.136 ※ 文章網址: http://www.ptt.cc/bbs/Office/M.1409710260.A.3CE.html
foolkids: 結果剛剛設定變數 A = 12 * 60 * 60 也是溢位... Why? 09/03 10:14
foolkids: 補充:有先 Dim A as Long 09/03 10:15
soyoso: 改12# * 60 * 60試試 09/03 10:16
foolkids: 謝謝蘇大! 方便告訴我問題所在嗎? 這問題好詭異呀~~~ 09/03 10:17
soyoso: http://goo.gl/VJqIsh 請看網頁下方網友回覆 09/03 10:40
soyoso: 原因因就是提供算式它判斷為integer,因此超過32767時就溢 09/03 10:42
soyoso: 位 09/03 10:42
foolkids: 謝謝蘇大~~~~ 09/03 10:57