[算表] VBA數字比大小問題

看板Office作者 (扣武桑)時間9年前 (2016/06/16 08:58), 9年前編輯推噓0(0013)
留言13則, 1人參與, 最新討論串1/1
軟體:EXCEL 版本:2010 直接附圖 http://i.imgur.com/HTOLN3I.jpg
為啥1000會大於1000啊@@ 是跟資料的類型有關嗎? C是double D是intenger 所以C會有未知的小數點跑出來這樣嗎@@ 有請大大開示 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.229.99 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1466038711.A.3D0.html

06/16 09:25, , 1F
應是浮點數問題,可設msgbox c-d
06/16 09:25, 1F

06/16 09:25, , 2F

06/16 09:30, , 3F
如取整數,可將變數c宣告為integer或long
06/16 09:30, 3F

06/16 09:39, , 4F
或以int(取整數)、round(四捨六入)、worksheetfunction.
06/16 09:39, 4F

06/16 09:39, , 5F
round(四捨五入)
06/16 09:39, 5F
先感謝回覆,想再請教一下,所以double類型的資料 一定會有很精確的小數位出現?以我的圖來說 因為都沒有宣告,所以AB記算有小數點後 自動變成double,自然就不正確了 是這樣嗎? ※ 編輯: jamhuang (42.73.229.99), 06/16/2016 09:46:46

06/16 09:48, , 6F
宣告為integer或long如遇小數位,進位方式同上述round
06/16 09:48, 6F

06/16 09:53, , 7F
double類型的資料不一定都會有小數位的出現
06/16 09:53, 7F

06/16 09:54, , 8F
例如宣告變數c為double,指定為值1000時,就無小數位
06/16 09:54, 8F

06/16 09:54, , 9F

06/16 09:58, , 10F
無宣告時,如有小數位時vba則會判斷為double
06/16 09:58, 10F

06/16 10:12, , 11F
測試上可加上msgbox ab=2.4,會看到這裡已產生浮點數錯誤
06/16 10:12, 11F

06/16 10:12, , 12F

06/16 10:16, , 13F
不正確的結果,就從此處產生
06/16 10:16, 13F
文章代碼(AID): #1NOVctFG (Office)
文章代碼(AID): #1NOVctFG (Office)