首先,该数值的处理一般是按照字符进行处理,所以其处理方法有很多种,
给你其中一种处理方法的过程:
para b
a=alltr(str(b,12,3))   &&假定你最长数字为12位,小数为三位
do whil "."$a
   if right(a,1)<>"." and right(a,1)=="0" 
      a=substrc(a,1,len(a)-1)
     else
      if right(a,1)=="."
         a=substrc(a,1,len(a)-1)
      endif
      exit
   endif
enddo      
return a
*-------------end

解决方案 »

  1.   

    该数值的处理一般是按照字符进行处理,给你另一种处理方法:
    ********************
    e=''
    a=1234.907
    DO mxb with a,e
    ? e
    ********************
    proc mxb
    lpara a,e
    b=a*100-int(a*100)
    c=a*10-int(a*10)
    d=a-int(a)
    if b>0
       e=alltrim(str(int(a))+'.'+right(str(a*1000),3))
    else
       if b=0.and.c>0
          e=alltrim(str(int(a))+'.'+right(str(int(a*100)),2))
       else
          if b=0.and.c=0.and.d>0
             e=alltrim(str(int(a))+'.'+right(str(int(a*10)),1))
          else
             if b=0.and.c=0.and.d=0
                e=alltrim(str(int(a)))
             endif
          endif
       endif
    endif
    return e
    endproc