![]() |
在這個頁面顯示本主題全部的 10 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 數值錯誤 -->>數值相減會出現錯誤 請版主幫我檢查一下 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=6483)
數值錯誤 -->>數值相減會出現錯誤 請版主幫我檢查一下
下列公式出現很明顯的錯誤
二個數值對減 照理不應該出現錯誤 但是數值卻是怪怪的
不知道是我哪裡寫錯 請老大幫我看看
夾帶檔案是 匯出的公式(i50714A_Test ) 可以使用
==========================================
{
i50714A_Test
在 2341 和 2330 會出現錯誤 數值錯誤
2006/11/24 1557
2341 >> 今天288均線 13.85 昨天288均線 13.83 今天-昨天的差值應該是 0.02 但是卻是0.01( 在VBS中看到的是0.011284 )
2330 >> 今天30均線 61.74 昨天30均線 62.72 今天-昨天的差值應該是 0.02 但是卻是0.01
}
CNow := Close ;
MA30 : MA( close , 30 ) ;
MA288 : MA( close , 288 ) ;
Prev1MA30 : ref( MA30 , 1 ) ;
Prev1MA288 : ref( MA288 , 1 ) ;
diff30 : MA30 - Prev1MA30 ;
diff288 : MA288 - Prev1MA288 ;
不好意思 圖片一
不好意思 圖片一
重點 錯誤數值的部分
重點 錯誤數值的部分
今天30均線 61.74 昨天30均線 61.72
二者相減應該是0.02 但是畫面顯示為 0.01
沒有錯呀
二者相減真實數值若是 0.02 才會是錯的喔
您跑跑下列公式就知了呀
MA30:MA(c,30) PRECISION2;
PreMA30:ref(MA30,1) PRECISION2;
MA30P4:MA(c,30) PRECISION4;
PreMA30P4:ref(MA30,1) PRECISION4;
別被顯示位數給誤導了 
ㄟ 問題是阿 畫面顯示的均線數值是正常的( 和精業的系統相同 )
那均線數值既然是正確的 數值相減就應該是 正確值
奇狐 畫面上的均線數值 和 真實數值有差異 我想這是一個Bug吧
畢竟 "奇狐畫面上的均線數值" 和 "精業的均線數值" 都是一樣的 所以必然是正確的
圖片一
圖片一
圖片2
圖片2
既然 上述這 2 天的均線數值都是正確的( 和精業系統一樣 )
既然 上述這 2 天的均線數值都是正確的( 和精業系統一樣 )
照理說 2 數值相減 應該是 0.02 吧
那若 "顯示之數值" 和 "精業的數值" 是相同的
那和 "顯示之數值" 相異者當然視為 "錯誤" 的
難道您要說 您的資料是正確的 而 精業的資料是錯誤的 ??
( 我想這是不合理的吧 )
請您用心仔仔細細看清楚下圖, 再來評論對錯
以下圖為例
30天的均值,顯示小數兩位時是61.74 (採四捨五入到小數第二位)
但若顯示小數四位時它的數是 61.7367
實際的數值儲存的精度比前兩者更高
61.7367-61.7233 = 0.0134 四捨五入到小數第二位是 0.01
此法計算的誤差較小
若您用顯示小數兩位來算( 四捨五入到小數第二位)
61.74-61.72 = 0.02
此法計算的誤差較大
用那一個是對是錯, 我想這樣的稱呼並不好(也都不能說錯)
就系統設計而言
數值計算必定是以實際的數值來計算
而非以顯示的數值來計算
這樣比較與真實數值接近
預設只顯示小數第二位(採四捨五入,為了觀看方便)
您去想想
用誤差大的數來算比較合宜
還是用誤差小的數來算比較合宜
恩 了解 謝謝您了
恩 了解 謝謝您了
我在想想
| 全部時間均為台灣時間, 現在時間為19:13 | 在這個頁面顯示本主題全部的 10 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.