VBA 日期計(jì)算Bug,怎么解決? [金字塔]
- 咨詢內(nèi)容:
VBA自定義函數(shù)
Function CS03(Formula,dd,tt)
CS03=0
dim day
day=dd+19000000CS03=day
End FunctionPEL命令
dd0:=DATE();
tt:time(),NOAXIS;
aa:=CS03(dd0,tt);
msgout(1,NUMTOSTR(aa,0));消息顯示(只計(jì)算20根K線,日k線)
2016/10/16 00:24:15 20160908
2016/10/16 00:24:15 20160912
2016/10/16 00:24:15 20160912
2016/10/16 00:24:15 20160914
2016/10/16 00:24:15 20160920
2016/10/16 00:24:15 20160920
2016/10/16 00:24:15 20160920
2016/10/16 00:24:15 20160922
2016/10/16 00:24:15 20160924
2016/10/16 00:24:15 20160926
2016/10/16 00:24:15 20160928
2016/10/16 00:24:15 20160928
2016/10/16 00:24:15 20160928
2016/10/16 00:24:15 20160930
2016/10/16 00:24:15 20161010
2016/10/16 00:24:15 20161012
2016/10/16 00:24:15 20161012
2016/10/16 00:24:15 20161012
2016/10/16 00:24:15 20161014
2016/10/16 00:24:15 20161016問題:沒有單數(shù)的日期,只有偶數(shù)日期,為什么?
不加19000000時(shí),消息顯示是正確的。
- 金字塔客服:
不明白你的邏輯,為何要加1900000?
- 用戶回復(fù):
你以為我想加啊,這是你們程序的bug,取日期函數(shù)dd0:=DATE();比如日期2016-10-16返回值是1161016,
但是VBA里有些函數(shù)又要用到“2016-10-16”,所以加19000000。
- 網(wǎng)友回復(fù):
不管怎么樣,我發(fā)現(xiàn)VBA的變量,數(shù)據(jù)大的計(jì)算就會(huì)出錯(cuò),例如,1161017+19000000 顯示結(jié)果20161016,什么原因?
- 網(wǎng)友回復(fù):
msgbox 1161017+19000000
這樣簡單測試重現(xiàn)不了你說的問題,可能的原因是浮點(diǎn)數(shù)的精度造成的,你試試這樣改進(jìn)
dim day
day=CLng(dd)+19000000
[此貼子已經(jīng)被作者于2016-10-17 21:21:29編輯過]
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容