int NumToCap(Currency cyMoney,AnsiString &strCap,int iDigits)
{ AnsiString STRUNIT,STRCAP;
AnsiString strMoney;
Currency cyFormatMoney;
int iExtendMoney;//扩大倍数的金额
int iTmpM,iLen,iPowerValue; STRCAP="零壹贰叁肆伍陆柒捌玖";
switch(iDigits)
{
case 2:
STRUNIT="分角元拾佰仟万拾佰仟亿拾佰仟";
strMoney=FloatToStrF(cyMoney,ffFixed,20,2);
break;
case 4:
STRUNIT="毫厘分角元拾佰仟万拾佰仟亿拾佰仟";
strMoney=FloatToStrF(cyMoney,ffFixed,20,4);
break;
case 3:
STRUNIT="厘分角元拾佰仟万拾佰仟亿拾佰仟";
strMoney=FloatToStrF(cyMoney,ffFixed,20,3);
break;
case 1:
STRUNIT="角元拾佰仟万拾佰仟亿拾佰仟";
strMoney=FloatToStrF(cyMoney,ffFixed,20,1);
break;
}
try
{
iLen=strMoney.Length();
cyFormatMoney=StrToCurr(strMoney);
iPowerValue=Power(10,iDigits);
iExtendMoney=cyFormatMoney*iPowerValue;
while(iLen-2>=0){
iTmpM=(iExtendMoney)/(Power(10,iLen-2));
strCap+=STRCAP.SubString(iTmpM*2+1,2) + STRUNIT.SubString((iLen-2)*2+1,2);
iPowerValue=Power(10,iLen-2);
iExtendMoney=iExtendMoney%iPowerValue;
iLen--;
}
}catch(...)
{
return -1;
}
return 0;
}
//BCB的,转一下吧。
参数:
cyMoney:需要转换的金额
strCap:大写字符
iDigits:需要的小数位数 返回:-1:失败 0:成功
{ AnsiString STRUNIT,STRCAP;
AnsiString strMoney;
Currency cyFormatMoney;
int iExtendMoney;//扩大倍数的金额
int iTmpM,iLen,iPowerValue; STRCAP="零壹贰叁肆伍陆柒捌玖";
switch(iDigits)
{
case 2:
STRUNIT="分角元拾佰仟万拾佰仟亿拾佰仟";
strMoney=FloatToStrF(cyMoney,ffFixed,20,2);
break;
case 4:
STRUNIT="毫厘分角元拾佰仟万拾佰仟亿拾佰仟";
strMoney=FloatToStrF(cyMoney,ffFixed,20,4);
break;
case 3:
STRUNIT="厘分角元拾佰仟万拾佰仟亿拾佰仟";
strMoney=FloatToStrF(cyMoney,ffFixed,20,3);
break;
case 1:
STRUNIT="角元拾佰仟万拾佰仟亿拾佰仟";
strMoney=FloatToStrF(cyMoney,ffFixed,20,1);
break;
}
try
{
iLen=strMoney.Length();
cyFormatMoney=StrToCurr(strMoney);
iPowerValue=Power(10,iDigits);
iExtendMoney=cyFormatMoney*iPowerValue;
while(iLen-2>=0){
iTmpM=(iExtendMoney)/(Power(10,iLen-2));
strCap+=STRCAP.SubString(iTmpM*2+1,2) + STRUNIT.SubString((iLen-2)*2+1,2);
iPowerValue=Power(10,iLen-2);
iExtendMoney=iExtendMoney%iPowerValue;
iLen--;
}
}catch(...)
{
return -1;
}
return 0;
}
//BCB的,转一下吧。
参数:
cyMoney:需要转换的金额
strCap:大写字符
iDigits:需要的小数位数 返回:-1:失败 0:成功
解决方案 »
- 如何实现数据的行的上下移动?
- 自定义控件中按钮如果与事件绑定
- 如何将Memo1中的文字每隔一段时间存到数据库中?
- 本人正在尝试写网络版的系统,那位高手可否给写进销存方面的存储过程来参考参考啊!100分
- 在Win9X、Win2000、WinXP 下如何获得主板BIOS的序列号及相关内容
- 紧急求助,大哥大姐们帮帮俺啊~~~~~~~~~
- 这个怎么实现?
- 数据被别人更新过后,自已再更新出错。
- 高分啦,麻烦各位帮我在win2000下试一下这个api函数(Avifilopen),代码如下:
- 如何让 Chart 控件字体不要放大
- 怎样写符合corba的delphi程序呢?
- 在自己由线程中使用含有OlE库的VCL组件时就会出错????不知道如何解决!
标题:中文数字表达
说明:普通方式和货币方式;和其它算法思路不一样;建议参考比较一下
设计:Zswang
日期:2002-01-25
支持:[email protected]
//*)
My e-mail :[email protected].
我有源代码