  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		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    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				這是我用迴圈做的程式   
 
 
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 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |