怎么实现下面的功能?
例如 2,010,004.00,大写应该是贰千壹佰万零肆元零角零分
case '0' : retvalue := retvalue + '零'<font color="red">这样就变成凡是0都为零了</font>
                    代码如下:
Function (stringVar amount)
(
  //stringVar value := CStr(amount);
  stringVar value := amount;
  numberVar alength := Length (value);
  stringVar retvalue := '';
  numberVar i := 0;
  for i :=1 to alength step 1 do 
  (
    select value[i] case '1' : retvalue := retvalue + '壹'
                    case '2' : retvalue := retvalue + '贰'
                    case '3' : retvalue := retvalue + '叁'
                    case '4' : retvalue := retvalue + '肆'
                    case '5' : retvalue := retvalue + '伍'
                    case '6' : retvalue := retvalue + '陆'
                    case '7' : retvalue := retvalue + '柒'
                    case '8' : retvalue := retvalue + '捌'
                    case '9' : retvalue := retvalue + '玖'
                    case '0' : retvalue := retvalue + '零'<font color="red">这样就变成凡是0都为零了</font>
                    case '.' : retvalue := retvalue + '元'                   
    default: retvalue := retvalue ;
    if (i = alength-23) and (value[i] <> '0') then retvalue := retvalue + '仟';
    if (i = alength-21) and (value[i] <> '0') then retvalue := retvalue + '佰';
    if (i = alength-20) and (value[i] <> '0') then retvalue := retvalue + '拾';
    if (i = alength-19) and (value[i] <> '0') then retvalue := retvalue + '兆';    if (i = alength-17) and (value[i] <> '0') then retvalue := retvalue + '仟';
    if (i = alength-16) and (value[i] <> '0') then retvalue := retvalue + '佰';
    if (i = alength-15) and (value[i] <> '0') then retvalue := retvalue + '拾';    if (i = alength-13) then retvalue := retvalue + '亿';
    if (i = alength-12) and (value[i] <> '0') then retvalue := retvalue + '仟';
    if (i = alength-11) and (value[i] <> '0') then retvalue := retvalue + '佰';
    if (i = alength-9) and (value[i] <> '0') then retvalue := retvalue + '拾';    if (i = alength-8) then retvalue := retvalue + '万';
    if (i = alength-7) and (value[i] <> '0') then retvalue := retvalue + '仟';
    if (i = alength-5) and (value[i] <> '0') then retvalue := retvalue + '佰';
    if (i = alength-4) and (value[i] <> '0') then retvalue := retvalue + '拾';
    if (i = alength-1) then if (value[i] = '0') then retvalue := retvalue + '零角' else retvalue := retvalue + '角';
    if (i = alength) then if (value[i] = '0') then retvalue := retvalue + '零分' else retvalue := retvalue + '分';
  );
  retvalue;
)