数字转换大写人民币的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<
相关文档:
Delphi的Socket编程要分几步?
2008-12-20 02:03:24
标签:Delphi Socket 编程 [推送到技术圈]
ClientSocket 和ServerSocket
几个重要的属性:
1.client和server都有port属性,需要一致才能互相通信
2.client有Address属性,使用时填写对方(server)的IP地址 & ......
以下是在网上收集的一些对无类型参数的说明.个人理解无类型变量就是一个指针.
象Delphi中function Read(var Buffer; Count: Longint): Longint; override;象Buffer这样没有类型的参数究竟应该怎么给参数????
这说明Buffer是通过地址方式传递的,一般说来只 ......
以下是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 ......
bool是LongBool类型。
Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型。
这四种类型的布尔值占用内存的数量如下:
Boolean 1 Byte
ByteBool 1 Byte
WordBool 2 Bytes(1 Word)
LongBool 4 Bytes(2 Words)
对 ......