数字转换大写人民币的delphi实现
文章来源:IT工程信息网 http://www.systhinker.com/html/09/n-12309.html
之前用Access作一个应用,但找不到货币转换成大写人民币的功能(当然可以通过excel 转换,但不在一个应用上,放弃)。以为比较简单,自己试写,谁知用了两个晚上,才基本实现,但没有小数点(元)以下货币的转换。也没有兆的判断。而且对字符的合法性也没有检验。今天有时间,将其完善一下。(可能还会有考虑不周的地方)
思路:
1、判断是否带有小数点的金额,如果是,就找出小数点所在数据。该位字符不进行转换。
2、小数点前的作为整数位,进行转换。整数位的每一位都有表示金额的级别:拾、佰、仟。而且还有万、亿的级别。
3、小数点后的作为角、分、厘处理。
4、如果有连续的零,只显示一个零。如50006,显示为伍万零陆。如果是发生在拾、佰、仟位,该零还要去掉。
view source
< id="highlighter_197338_clipboard" title="copy to clipboard" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="16" height="16" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash">
print?
000
function TForm1.changeRmb(const strRmb:string):string;
001
var
002
txt,strhighlevel:string;
003
i,n,m,ilen,ipos:Integer; //n记录整数部分长度,m记录分数部分长度
004
strarray,strlevel:array of string;
005
p:pchar;
006
ispoint:boolean;//判断是否有小数点
007
begin
008
ispoint:=false;
009
result:='';
010
ipos:=0;
011
m:=0;
012
txt:=Trim(strRmb);
013
i:=1;
014
p:=PChar(txt);
015
//去除开头的0,以及.
016
if ((txt[1]='0') and (txt[2]<>'.')) or (txt[1]='.') then
017
begin
018
ShowMessage('第1位不能为0或者是.,退出操作');
019
exit;
020
end;
021
//检查字符的合法性
022
while (i<
相关文档:
在sql server 的northwide 中建立主表
create table sell_h( sell_id char(10),cust_name char(10) Primary key(sell_id) )
go
create table sell_h( sell_id char(10),inv char(10) ,amt float,qty float Primary key(sell_id,inv) )
首先,要注意以下设置
1.要注意报从表qrydetail设置,批保存开式. 即.locktype= batc ......
以下是test.htm页的内容
首先定义一个插件对象
<object id="Mapupload" name="Mapupload" width="0" height="0" classid="clsid:045FA9B9-B373-4D4C-AE76-128A19A4B6AE">
</object>
<script type="text/javascript">
//此函数打开activexform窗体并为activ ......