AnsiString UpperMoney(double jn)
{
int L, ZL, Z, U, V;
AnsiString F = "壹贰叁肆伍陆柒捌玖";
AnsiString G = "元万亿万拾佰仟分角";
AnsiString AA, B, JNS=" ";
double je;
if(jn<=0)
return "零元整";
je = (jn<1 ? jn*100 : jn);
sprintf(JNS.c_str(),"%26.2f",je);
JNS = TrimRight(TrimLeft(JNS));
L = StrLen(JNS.c_str());
L = (jn<1 ? (jn<0.1?1:2) : L);
ZL = L+1;
AA = AnsiString("");
B = AnsiString("");
for( ; L > 0; )
{
Z = StrToInt( JNS.SubString(ZL-L, 1) );
U = int( L/4 );
V = L%4;
if( Z>0 )
{
U = (V==0 ? U+U-1 : V+V+(U>0 ? 7 : 13));
AA = AA + B + F.SubString(Z+Z-1,2) + G.SubString(U,2);
B = "";
}
else
{
if( L==1 )
AA = AA + "整";
else
{
if( V==0 )
AA = AA + G.SubString(U*2-1, 2);
else
AA = AA + "";
}
B = (V>=0 ? "零" : "");
}
L = (L==4 ? 2 : L-1);
}
return AA;
}