到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > 請問這是怎麼一回事? (單精度)
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
shuenyi
中級會員

註冊日期: Sep 2006
來  自:
文章數量: 34

請問這是怎麼一回事?

在福建飛狐發現這樣一個問題
http://bbs.fjfox.com/thread-38715-1-1.html
STRTONUM('20070419'); 顯示出來卻是:20070420
STRTONUM('20071107'); 顯示出來卻是:20071108
STRTONUM('20081121'); 顯示出來卻是:20081120

是個有趣的問題,這個問題似乎只在 '16779999' 以後會發生,試試看

x:='16779999';
xx:='16779998';
//y:=2007041.9;
drawtext(barpos=sysparam(2),c,x),align4;
//drawnumber(barpos=sysparam(2),c,y,1),align4,shift10;
strtonum(x);
strtonum(xx);

很不幸的是在我的奇狐也有同樣問題存在,請問這是怎麼回事?

向版主報告此篇 | 查IP位址
Old Post 2007-03-28 10:26
shuenyi 現在離線 點選這裡查看 shuenyi 的個人資料 點選這裡給 shuenyi 傳送一條短訊 查找更多關於 shuenyi 的文章 增加 shuenyi 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

這很正常的
因為公式中的數值採單精度格式儲存(7位有效位數)

所以函數 DATE, 用下列方法來表示
DATE 有效值範圍為 700101-1341231 (用來表示19700101-20341231)

向版主報告此篇 | 查IP位址
Old Post 2007-03-28 12:23
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
shuenyi
中級會員

註冊日期: Sep 2006
來  自:
文章數量: 34

這個我明白,例子中所述的並非日期(雖然料想原問者所想表現的可能是與日期有關),而是單純自文字 '16779999' 等轉化成數字,並不要求四捨五入,即使軟體自動四捨五入也應該是均勻分布才對,並且要有一個強迫不四捨五入的方法來控制,否則在應用到類似轉化的過程,會發生災難
此外,其變化並非依尋常的四捨五入規則來的,我想這是軟體的bug,請教總版主的看法

向版主報告此篇 | 查IP位址
Old Post 2007-03-28 13:10
shuenyi 現在離線 點選這裡查看 shuenyi 的個人資料 點選這裡給 shuenyi 傳送一條短訊 查找更多關於 shuenyi 的文章 增加 shuenyi 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

並非 Bug
16779999 已達8位數了
最未位在計算或轉換過程中即會有差距(精度問題)

向版主報告此篇 | 查IP位址
Old Post 2007-03-28 13:57
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

就 DATE 函數來說
今日的 DATE 值為 1070328 代表 20070328
2007 - 1900 = 107
您將年份文字轉為 DATE 函數 的格式
即可於奇狐中計算相對應的日期

向版主報告此篇 | 查IP位址
Old Post 2007-03-28 14:25
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
shuenyi
中級會員

註冊日期: Sep 2006
來  自:
文章數量: 34

我在上面已經說過,這不是單純關係到日期計算問題,日期的計算不應該與一般數字混淆,一個軟體不應該在任何數字的處理都只限於7位數,而且也不適宜把所有數字都當成日期來看待,況且在同樣是8位數的裡頭,問題似乎不發生在16779999之前,這與8位的解釋有點出入,反正這個問題顯然沒有帶給使用者多少困擾,因為會用到這樣表示的公式寫法並不多見,只是心有存疑,就直話直說,並非存心找碴,謝謝總版主的教導

向版主報告此篇 | 查IP位址
Old Post 2007-03-28 19:14
shuenyi 現在離線 點選這裡查看 shuenyi 的個人資料 點選這裡給 shuenyi 傳送一條短訊 查找更多關於 shuenyi 的文章 增加 shuenyi 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 shuenyi 發表
我在上面已經說過,這不是單純關係到日期計算問題,日期的計算不應該與一般數字混淆,一個軟體不應該在任何數字的處理都只限於7位數,而且也不適宜把所有數字都當成日期來看待,況且在同樣是8位數的裡頭,問題似乎不發生在16779999之前,這與8位的解釋有點出入,反正這個問題顯然沒有帶給使用者多少困擾,因為會用到這樣表示的公式寫法並不多見,只是心有存疑,就直話直說,並非存心找碴,謝謝總版主的教導


謝謝您的指教
但您的說法有誤, 並非事實
在此鄭重澄清, 以免誤導他人

第一
奇狐並無把 【所有數字都當成日期來看待】


第二
奇狐並無把 【在任何數字的處理都只限於7位數】
單精度本身是可以計算超過7位數的數值的
只是它的精準度只有數值的前7位數


第三
再強調一次, 單精度有效位數是前7位

【問題似乎不發生在16779999之前】
這並非重點, 也無證實的必要

自 10000000∼99999999 這中間均是八位數
單精度計算上其最末位數即可能會失真
最末位數有時會正確,有時會有誤差
至於在其中的那個數值開始會失真已無意義
所以技術上均以 『有效位數7位』稱呼之


第四
單精度的精準範圍是否夠用, 見人見智
就算將單精度改為倍精度也是有其失準的時候
奇狐目前採用單精度,個人認為並無不妥
因為盤中計算上可以迅速很多,精準度也可接受
很少人盤中會看超過7位數的
有時甚至會有人嫌數字太長
將其轉換為 "萬" 或 "億" 來表達
因為若不小心多看一位數, 可能會損失慘重

就看您是做何用途嚕

向版主報告此篇 | 查IP位址
Old Post 2007-03-29 10:29
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
shuenyi
中級會員

註冊日期: Sep 2006
來  自:
文章數量: 34

請勿生氣!!實在佩服版主的博學多能,不這樣也不會多懂一點,絕無妖言惑眾之心,奇狐仍是我的最愛,謝謝指導,對不確之言向奇狐道歉

向版主報告此篇 | 查IP位址
Old Post 2007-03-29 12:05
shuenyi 現在離線 點選這裡查看 shuenyi 的個人資料 點選這裡給 shuenyi 傳送一條短訊 查找更多關於 shuenyi 的文章 增加 shuenyi 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 shuenyi 發表
請勿生氣!!實在佩服版主的博學多能,不這樣也不會多懂一點,絕無妖言惑眾之心,奇狐仍是我的最愛,謝謝指導,對不確之言向奇狐道歉


沒生氣啦
站在我們的立場, 是必需澄清此問題的
讓使用的人有正確認知

別放心上喔
謝謝您提出此問題
也歡迎您多多繼續給予我們指教
謝謝!

向版主報告此篇 | 查IP位址
Old Post 2007-03-29 12:12
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為23:38 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們