该数值的处理一般是按照字符进行处理,给你另一种处理方法:
********************
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
首先,该数值的处理一般是按照字符进行处理,所以其处理方法有很多种,
给你其中一种处理方法的过程:
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