[注意]通達信整數(shù)減法有時會算錯! [通達信]
-
咨詢內(nèi)容:
兩個整數(shù)相減 20130625 - 19000000 ,結果應該是1130625 ,可通達信算出來的卻是 1130624!
很簡單的測試,自定義指標
結果1:20130625 - 19000000;
結果2:20130708 - 19000000;
結果1是錯誤的,而結果2又是對的。
目前在內(nèi)核5.85和5.83 我都發(fā)現(xiàn)了這樣的問題,通達信連最基礎的整數(shù)減法都能算錯,還有什么不能算錯的?
看圖
此主題相關圖片如下345.jpg:
-
通達信技術部:
這個問題確實是個嚴重的問題。很顯然,它在內(nèi)部是把兩個整數(shù)估計用浮點數(shù)的方法來進行計算了。
-
通達信客服:
是的。數(shù)據(jù)類型所限,不支持8位整數(shù)。
-
網(wǎng)友交流:
以下是引用vs9841在2013-7-16 16:30:00的發(fā)言:
這個問題確實是個嚴重的問題。很顯然,它在內(nèi)部是把兩個整數(shù)估計用浮點數(shù)的方法來進行計算了。
確如樓主所言,將20130625存在float中再輸出就變成了20130624了。
一段c語言測試:
#include
#include
int main()
{
float a1 = 20130625 ;
printf("a1=%f\n",a1) ;
return 0;
}
- 網(wǎng)友交流: 官方到現(xiàn)在還沒有出來解決這個問題 。。那個float換成double就可以。C語言中這個float類型通常是32位,其中有8位用于表示指數(shù)部分和符號。24位用于表示其余部份,其中C保證至少小數(shù)點后6位有效,按照浮點數(shù)在內(nèi)存中表示方法。float類型轉(zhuǎn)換整數(shù)精度應該是6+1 =7位,所以用float類型轉(zhuǎn)換8位整數(shù)會損失很多精度,至少損失一半的8位整數(shù)精度。所以說這個問題非常嚴重
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯(lián)系技術人員 QQ: 1145508240 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內(nèi)容