Function formatcc (p_amount ){
VaR rtstr = "", tmpstr = "";
VaR knum;
VaR tmpint;
If (p_amount> 999999999999.99)
Return "the number is too large to be converted! ";
If (p_amount/10000> = 1 ){
Knum = p_amount % 10000;
P_amount = (p_amount-knum)/10000;
Tmpstr = formatcc (p_amount );
If (tmpstr! = NULL & tmpstr. length! = 0)
Rtstr + = tmpstr + "Ten Thousand ";
Rtstr + = formatcc (knum );
} Else {
Tmpint = parseint (p_amount/1000 );
If (tmpint> = 1)
Rtstr + = numtocc (tmpint) + "batch ";
Else {
If (rtstr. Length = 0)
Rtstr + = "zero ";
}
P_amount = p_amount-tmpint * 1000;
Tmpint = parseint (p_amount/100 );
If (tmpint> = 1)
Rtstr + = numtocc (tmpint) + "batch ";
Else {
If (rtstr. Length = 0 |! (Rtstr. substring (rtstr. Length-1, rtstr. Length) = "0 ")){
Rtstr + = "zero ";
}
}
P_amount = p_amount-tmpint * 100;
Tmpint = parseint (p_amount/10 );
If (tmpint> = 1)
Rtstr + = numtocc (tmpint) + "pick up ";
Else {
If (rtstr. Length = 0 |! (Rtstr. substring (rtstr. Length-1, rtstr. Length) = "0 "))
Rtstr + = "zero ";
}
P_amount = p_amount-tmpint * 10;
Tmpint = parseint (p_amount/1 );
If (tmpint> = 1)
Rtstr + = numtocc (tmpint );
P_amount = p_amount-tmpint;
If (p_amount> 0 ){
If (rtstr. indexof ("zero") = rtstr. Length-1)
Rtstr = rtstr. substring (0, rtstr. Length-1 );
Rtstr + = "circle ";
}
If (p_amount> 0.009 ){
P_amount = p_amount * 100;
Tmpint = parseint (p_amount/10 );
If (tmpint> = 1)
Rtstr + = numtocc (tmpint) + "";
P_amount = p_amount-tmpint * 10;
Tmpint = parseint (p_amount/1 );
If (p_amount-tmpint> 0.5)
Tmpint ++;
If (tmpint> = 1)
Rtstr + = numtocc (tmpint) + "points ";
}
}
Return rtstr;
}
Function setformatcc (p_amount ){
VaR amount = 0;
VaR rtstr;
Amount = parsefloat (p_amount );
Amount + = 0.0001;
Rtstr = formatcc (amount );
If (rtstr. lastindexof ("Ten Thousand ")! = Rtstr. indexof ("Ten Thousand ")){
Rtstr = rtstr. substring (0, rtstr. indexof ("Ten Thousand") + "hundred million" + rtstr. substring (rtstr. indexof ("Ten Thousand") + 1, rtstr. length );
}
If (rtstr. indexof ("0") = 0)
Rtstr = rtstr. substring (1, rtstr. Length );
Rtstr + = "whole ";
Return rtstr;
}
Function numtocc (I ){
Switch (I ){
Case 1: Return "1 ";
Case 2: Return "II ";
Case 3: Return "";
Case 4: Return "Si ";
Case 5: Return "Wu ";
Case 6: Return "land ";
Case 7: Return "success ";
Case 8: Return "success ";
Case 9: Return "success ";
Case 0: Return "0 ";
Default: Return "";
}
}