dephi代码转化为.net代码
请问:
function RMB1(i:Real):string; //小写金额转大写
const
d='零壹贰叁肆伍陆柒捌玖分角元拾佰仟万拾佰仟亿';
var
m,k:string;
j:integer;
begin
k:='';
m:=floattostr(int(i*100));
for j:=length(m) downto 1 do
k:=k+d[(strtoint(m[Length(m)-j+1])+1)*2-1]+
d[(strtoint(m[Length(m)-j+1])+1)*2]+d[(10+j)*2-1]+d[(10+j)*2];
result:=k;
end;
怎么把以上的dephi代码转换为.net代码
问题点数:20、回复次数:1Top
1 楼Brunhild()回复于 2005-07-10 23:34:05 得分 20
帮你优化了一下,请别介意:
1. 减少了STRING操作,因为STRING操作的代价是很高的
2. 改进查表设计减少运算强度
Function RMB1(ByVal i As Double) As String
Dim digitals As Char() = {"零"c, "壹"c, "贰"c, "叁"c, "肆"c, "伍"c, "陆"c, "柒"c, "捌"c, "玖"c}
Dim names As Char() = {"分"c, "角"c, "元"c, "拾"c, "佰"c, "仟"c, "万"c, "拾"c, "佰"c, "仟"c, "亿"c}
Dim k As New System.Text.StringBuilder(22)
Dim m As Char()
Dim j As Integer
m = CInt(i * 100).ToString
For j = 0 To m.Length - 1
k.Append(digitals(Char.GetNumericValue(m(j))))
k.Append(names(m.Length - j - 1))
Next
Return k.ToString
End Function
Top




