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

修理小數點後(轉貼)

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



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 1 樓

發表發表於: 星期五 一月 16, 2004 8:49 pm    文章主題: 修理小數點後(轉貼) 引言回覆

的零最後方法,現在暫且用這個吧!


修理小數點後的零最後方法,現在暫且用這個吧!
又把練手的東東找出來了!:)
高手另有方法請指點!

*取除小數點後無效資料後零的函數 TrimZero
*nTemp 傳入數字型參數
*nLen 傳入數字型參數的長度
*nFraction 傳入數字型參數的小數位的位數
*!* ?TrimZero(134.01511000,9,7)
*!* ?TrimZero(134.01510000,9,7)
*!* ?TrimZero(134.0,9,6)
*!* ?TrimZero(134,9,6)
*!* ?TrimZero( 10645.440,9,6)
*!* ?TrimZero(600,4,2)
Function TrimZero()
Para nTemp,nLen,nfraction
cTemp=Str(nTemp,nLen,nfraction)
N=Len(cTemp)
If At(".",cTemp)<>0
For i=1 To nLen
If Rat("0",cTemp)=N Or Rat(".",cTemp)=N
cTemp=Substr(cTemp,1,N-1)
N=Len(cTemp)
Endif
Endfor
Endif
Return Alltrim(cTemp)
Endif
Endfunc

網友介紹用這個方法?這個方法是要比我的簡單好多,但是後來我發現,如果資料為6000就會有錯!現在還沒有好的辦法解決!請高手出招!
strt(allt(strt(tran(85.020000),"0"," "))," ","0")

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 2 樓

發表發表於: 星期一 一月 19, 2004 5:29 pm    文章主題: 引言回覆

這是我用遞迴的方法做的程式
***************
func trimzero &&--去掉數字(已變成字串型態)右邊的0, 原則上填上空白, 除非傳來 mnospace=.T.
lpara mcnu, mnospace
local mret
if right( mcnu,1) = '0' and at('.' , mcnu)#0
mret = trimzero( left( mcnu, len(mcnu)-1 ) , mnospace )+ iif( mnospace, '', ' ')
else
mret = iif(right(mcnu,1)='.',left( mcnu, len(mcnu)-1 )+iif( mnospace, '', ' ') ,mcnu)
endif
return mret

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
小桑•無痕



註冊時間: 2003-07-08
文章: 304
來自: Tainan, Taiwan

第 3 樓

發表發表於: 星期一 一月 19, 2004 7:21 pm    文章主題: 引言回覆

這是我用迴圈做的程式 Rolling Eyes

FUNCTION TrimZero1(nTemp,nLen,nFraction)
LOCAL cTemp,nLen
cTemp = ALLTRIM(STR(nTemp,nLen,nFraction))
nLen = LEN(cTemp)
DO WHILE RAT(".",cTemp) > 1 .AND. INLIST(SUBS(cTemp,nLen,1),"0",".")
nLen = nLen - 1
ENDDO
RETURN(LEFT(cTemp,nLen))
ENDFUNC
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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