我下面的人民币转换成为大写函数在D7上是正确的,到了Xe下得到的值完全乱套了。请问大虾们是哪里出了问题?要怎么改呢function rmb2dx(rmbje:Double):String; // 人民币转换成为大写
const
s1:String='零壹贰叁肆伍陆柒捌玖';
s2:String='分角圆拾佰仟万拾佰仟亿拾佰仟万';
var
s,dx:String;
i,Len:Integer;
function StrTran(const S,S1,S2:String):String;
begin
Result:=StringReplace(S,S1,S2,[rfReplaceAll]);
end;
begin
if rmbje<0 then
begin
dx:='负';
rmbje:=-rmbje;
end;
s:=Format('%.0f',[rmbje*100]);
Len:=Length(s);
for i:=1 to Len do
dx:=dx+Copy(s1,(Ord(s[i])-Ord('0'))*2+1,2)+Copy(s2,(Len-i)*2+1,2);
if dx='' then result:='零分整'
else result:=dx+'整';
end;
const
s1:String='零壹贰叁肆伍陆柒捌玖';
s2:String='分角圆拾佰仟万拾佰仟亿拾佰仟万';
var
s,dx:String;
i,Len:Integer;
function StrTran(const S,S1,S2:String):String;
begin
Result:=StringReplace(S,S1,S2,[rfReplaceAll]);
end;
begin
if rmbje<0 then
begin
dx:='负';
rmbje:=-rmbje;
end;
s:=Format('%.0f',[rmbje*100]);
Len:=Length(s);
for i:=1 to Len do
dx:=dx+Copy(s1,(Ord(s[i])-Ord('0'))*2+1,2)+Copy(s2,(Len-i)*2+1,2);
if dx='' then result:='零分整'
else result:=dx+'整';
end;
解决方案 »
- DBGrideh如何做到这种效果?
- delphi中怎么进行表锁定?
- 如何用鼠标拖动dbgrid中的记录,并更改数据集的顺序
- ACCESS查询怪问题
- [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 2 ??!!
- 借此問一下,一個MRP系統現在要多少錢才能買的到。其主要模塊有....歡迎大家發表意見!
- 我想在combobox里设成只能选择它里面的item,而不能自己输入,怎样做
- 哪里有Java风格的按钮控件???
- delphi里面的findComponent()函数怎么用?
- 用session.GetTableNames的时候怎么屏蔽掉输入username,password?
- 在Main单元自定义的带参量过程,无法在另外一个单元调用?
- 在线程中控制当前窗体按钮状态时报错
s1:AnsiString='零壹贰叁肆伍陆柒捌玖';
s2:AnsiString='分角圆拾佰仟万拾佰仟亿拾佰仟万';
D2010中的string 是widestring unicode
Char pchar也是
注意下就OK了
我用2010
XE跟2010应该是一样的吧