Function QtyToChar(Qty: Double): String;
Const
Con: Array [0 .. 3] Of String[2] = ('', '拾', '佰', '仟');
DD: Array [0 .. 9] Of String[2] = ('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒',
'捌', '玖');
Var
Str: String;
i, r: Byte;
Begin
If Qty < 0 Then
Qty := -Qty;
Str := FormatFloat('#', Qty * 100);
Result := '';
For r := 1 to Length(Str) Do
Begin
i := StrToInt(Str[Length(Str) - r + 1]);
Case r OF
1:
Result := DD[i] + '分';
2:
Result := DD[i] + '角' + Result;
Else
IF i > 0 then
Result := DD[i] + Con[(r - 3) Mod 4] + Result
Else
Begin
if (Copy(Result, 1, 2) <> '零') Then
Result := '零' + Result;
End;
End;
IF r < Length(Str) Then
CASE r OF
2:
Result := '元' + Result;
6:
Result := '万' + Result;
10:
Result := '亿' + Result;
End;
End;
While Pos('零元', Result) > 0 Do
Delete(Result, Pos('零元', Result), 2);
While Pos('零万', Result) > 0 Do
Delete(Result, Pos('零万', Result), 2);
While Pos('零亿', Result) > 0 Do
Delete(Result, Pos('零亿', Result), 2);
Result := Result + '整';
End;