VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

函式運算結果有問題

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
shyhpyng



註冊時間: 2006-10-11
文章: 60
來自: 台南市

第 1 樓

發表發表於: 星期四 一月 24, 2008 5:29 pm    文章主題: 函式運算結果有問題 引言回覆

我今天在計算時間發現一個現象,不知道各位大大知不知道為什麼,以下

?Abs(Ctot("12:00")-Ctot("13:00"))/60 => 60.0000

?Int(60.0000) => 60

?Int(Abs(Ctot("12:00")-Ctot("13:00"))/60) => 59

?Int(Abs(Ctot("13:00")-Ctot("14:00"))/60) => 60

?Int(Abs(Ctot("14:00")-Ctot("15:00"))/60) => 59

好奇怪喔!為什麼計算12:00到13:00就是會少1 ,某些區段會少1某些區段就正常
也就是我第一行的算式在加Int()函式它就會從60變成59
但是計算13:00到14:00就正常;14:00到15:00又少1了......
怎麼辦,這樣算時間會少耶!
感激各位大大指導
回頂端
檢視會員個人資料 發送私人訊息
shyhpyng



註冊時間: 2006-10-11
文章: 60
來自: 台南市

第 2 樓

發表發表於: 星期五 一月 25, 2008 9:37 am    文章主題: 引言回覆

各位大大!我自己亂試了一下發現,上面的範例我要是先做絕對值再取整數的話就會發生少1的情況,然後我就把它顛倒過來,我先取整數後再做絕對值,好奇妙喔他就正常了.....這真是令我感到不解!不過至少問題先解決了,但是我還是很想知道為什麼會這樣
回頂端
檢視會員個人資料 發送私人訊息
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 3 樓

發表發表於: 星期五 一月 25, 2008 2:58 pm    文章主題: 引言回覆

是浮點運算器的問題,一言難盡(事實上是懶得說),用 Google 去搜尋相關資料,應該會有相關詳細說明
_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
fschern



註冊時間: 2003-10-12
文章: 34


第 4 樓

發表發表於: 星期六 一月 26, 2008 10:04 am    文章主題: 引言回覆

執行下列指令即可看到樓上所稱『浮點運算器的問題』:
SET DECIMALS TO 10
? Abs(Ctot("12:00")-Ctot("13:00"))/60
回頂端
檢視會員個人資料 發送私人訊息
lygcw9603



註冊時間: 2011-12-25
文章: 127


第 5 樓

發表發表於: 星期日 三月 17, 2024 10:41 am    文章主題: 引言回覆

int()>>>round(,0)
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作