DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jeff1314
今日帖子: 10
在线用户: 13
导航: 论坛 -> 论坛精华贴 斑竹:liumazi,iamdream  
作者:
男 beginer (初学者) ★☆☆☆☆ -
盒子活跃会员
2003/3/31 8:53:00
标题:
谁能提供小写金额转换为大写表示的控件 浏览:7832
加入我的收藏
楼主: 我现在写一个程序,其中用到小写金额转大写功能,但我自己不懂写,只好使用现成的啦,有谁愿意指点一下怎样编写更好,谢谢!
----------------------------------------------
新手,想得到您的帮助!
作者:
男 ideal (zhy87203) ★☆☆☆☆ -
盒子活跃会员
2003/4/2 15:37:00
1楼: 编写一个收费软件时要用到一个小写金额转换成大写金额的函数,我曾在网上找到一个用Powerbuilder写的函数,长达四五十行之巨,后来我自己用DELPHI写了一个函数,寥寥几行代码就搞定: 
function TForm1.xTOd(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]; 
  xTOd:=k; 
end; 
调用: 
procedure TForm1.Button1Click(Sender: TObject 
var 
  Sum:real; 
begin 
  sum:=12.34; 
  showmessage('人民币大写:'+xTOd(Sum) 
end; 
湖北襄樊364医院  黎高桦 
talltree_@163.com 
2002/4/22
----------------------------------------------
DELPHI要没落了!唉
作者:
男 merlinfang (merlinfang) ★☆☆☆☆ -
盒子活跃会员
2003/4/2 18:26:00
2楼: 不懂,写下思想拉
 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];  
看不懂
----------------------------------------------
欢迎进入mop.6to23.com
作者:
男 xinhua2008 (bbhorse) ★☆☆☆☆ -
普通会员
2003/4/3 8:28:00
3楼: 是的,能讲得清楚一点吗?
----------------------------------------------
-
作者:
男 beginer (初学者) ★☆☆☆☆ -
盒子活跃会员
2003/4/9 13:27:26
4楼: 我试了一下好象是可以,但是不符合标准的财务要求。
例如: 120.36 要为:壹佰贰拾元零叁角陆分.
10000  要为: 壹万元整.
----------------------------------------------
新手,想得到您的帮助!
作者:
男 lichaohui ( ) ★☆☆☆☆ -
普通会员
2003/4/22 17:15:01
5楼: 我新发布的组件或许可以满足你的需要,
目前可以转化的整数范围是:0 - 8e18
都可以正常按照人的阅读习惯进行转化,

同时提供,整数转化为中文,浮点数转化为中文,
数字序列转化为中文,日期时间转化为中文,
能够兼容较大的整数(64位) 

下载在: www.playicq.com
http://61.132.118.185:8080/dispdocnew.php?id=4360

相关讨论在
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1766452

欢迎报告bug
----------------------------------------------
-
作者:
男 hbsyzxj (hbsyzxj) ★☆☆☆☆ -
盒子活跃会员
2003/5/30 10:29:33
7楼: 这是我写的一个大小写函数,直接调用
function My_StrToRMB(curs :string) :string;
implementation

function  My_StrToRMB(curs: string) :string ;
var
  daxie,danwei,minuscurs:string;
  i,j,deccount :integer ;
  rmb :int64;

begin
  curs:=trim(curs);
  if (curs='-') or (curs='.') or (curs=') then  // '.','-','错
  begin
    result:='ERROR';
    exit;
  end;
  deccount :=0;
  for i:=1 to length(curs) do
  begin
    if  not (curs[i]  in ['0'..'9','.','-']) then     //'123w2'错
    begin
      result:='ERROR';
      exit;
    end;
    if (curs[i]='.') and (deccount>0) then  //'12313.324.23'错
    begin
      result:='ERROR';
      exit;
    end;
    if (curs[i]='-') and (i>1) then        //'-123-123'错
    begin
      result:='ERROR';
      exit;
    end;
    if curs[i]='.' then  inc(deccount);
  end;
  rmb:=round(StrToFloat(curs)*100);
  minuscurs:=';  //负数标志
  if rmb<0 then
  begin
    minuscurs:='(负数)' ;
    rmb:=(-1)*rmb;
  end;
  if rmb>=1E18 then     //超过9千万亿
  begin
    result:='ERROR';
    exit;
  end;
  curs:=';
  i:=0; j:=0 ;
  while rmb>0 do
  begin
    j:= rmb mod 10;
    case j of
      0 : daxie :='零' ;
      1 : daxie :='壹' ;
      2 : daxie :='贰' ;
      3 : daxie :='叁' ;
      4 : daxie :='肆' ;
      5 : daxie :='伍' ;
      6 : daxie :='陆' ;
      7 : daxie :='柒' ;
      8 : daxie :='捌' ;
      9 : daxie :='玖' ;
    end;
    case i of
      0 : danwei :='分' ;
      1 : danwei :='角' ;
      2 : danwei :='圆' ;
      3 : danwei :='拾' ;
      4 : danwei :='佰' ;
      5 : danwei :='仟' ;
      6 : danwei :='万' ;
      7 : danwei :='拾' ;
      8 : danwei :='佰' ;
      9 : danwei :='仟' ;
      10 : danwei :='亿' ;
      11 : danwei :='拾' ;
      12 : danwei :='佰' ;
      13 : danwei :='仟' ;
      14 : danwei :='万' ;
      15 : danwei :='拾' ;
      16 : danwei :='佰' ;
      17 : danwei :='仟' ;
    end;
    rmb:=rmb div 10;
    if j<>0 then curs:=daxie+danwei+curs;      //该位上不为0
    if (j=0) and (not (i in [2,6,10,14])) then //该位为0,是一般位
        curs:=daxie+curs;
    if (j=0) and  (i in [2,6,10,14]) then      //该位为0,是敏感位
        curs:=danwei+curs;
    inc(i);
  end;
  while pos('零零',curs)>0  do  curs:=stringreplace(curs,'零零','零',[]);
  curs:=stringreplace(curs,'零圆','圆',[]);
  while pos('零万',curs)>0  do curs:=stringreplace(curs,'零万','万',[]); //上万亿后可能两个'零万'
  curs:=stringreplace(curs,'零亿','亿',[]);
  curs:=stringreplace(curs,'角零','角整',[]);
  if copy(curs,length(curs)-3,4)='圆零' then  //最后两位是圆零.
      curs:=stringreplace(curs,'圆零','圆整',[]);  //小数点后
  curs:=stringreplace(curs,'亿万','亿',[]);
  result:=minuscurs+curs;
end;


----------------------------------------------
-
作者:
男 beauty (beauty) ★☆☆☆☆ -
普通会员
2003/9/1 21:58:01
8楼: 写的都很好
我还是比较欣赏1楼的做法
思想是在不同的位置后加上不同的大写汉字
----------------------------------------------
李建明
作者:
男 sadanboy101 (撒旦吹着笛子来) ★☆☆☆☆ -
盒子活跃会员
2003/9/15 18:59:25
9楼: 我赞同第一种方法,简单明了,不过不符合财务标准
----------------------------------------------
人不过是一根苇草,是自然界最脆弱的东西;但他是一根能思想的苇草。用不着整个宇宙都拿起武器来才能毁灭他;一口气、一滴水就足以致他死命了。然而,纵使宇宙毁灭了他,人却依然要比致他死命的东西更高贵的多;因为他知道自己要死亡,以及宇宙对他所具有的优势,而宇宙对此却是一无所知。

能思想的苇草—我应该追求自己的尊严,绝不是求之于空间,而是求之于自己的思想的规定。我占有多少土地都不会有用;由于空间,宇宙便囊括了我并吞没了我,有如一个质点;由于思想,我却囊括了宇宙。
作者:
女 inrm (英壬) ★☆☆☆☆ -
普通会员
2003/10/4 7:10:55
10楼: //我曾用DBaseIII编写过类似函数,虽仅十几行代码却完全符合财务规定。至今未发现有更为短小精简的。现改编为Delphi程序,请各位指正。
//以下函数能将小于十万亿元的小写金额转换为大写
//作者:方小庆 inrm@263.net
Function NtoC(n0 :real) :String;
  Function IIF(b :boolean; s1,s2:string):string;
    begin  {本函数在VFP和VB均为系统内部函数}
      if b then IIF:=s1 else IIF:=s2;
    end;
  Const c = '零壹贰叁肆伍陆柒捌玖◇分角圆拾佰仟万拾佰仟亿拾佰仟万';
  var L,i,n, code :integer;
      Z :boolean;
      s, st,st1 :string;
begin
  s :=FormatFloat('0.00',n0);
  L :=Length(s);
  Z :=n0<1;
  For i:= 1 To L-3 do
    begin
    Val(Copy(s, L-i-2, 1), n, code);
    st:=IIf((n=0)And(Z Or(i=9)Or(i=5)Or(i=1)), ', Copy(c, n*2+1, 2))
      + IIf((n=0)And((i<>9)And(i<>5)And(i<>1)Or Z And(i=1)), ', Copy(c, (i+13)*2-1, 2))
      + st;
    Z := (n=0);
    end;
  Z := False;
  For i:= 1 To 2 do
    begin
    Val(Copy(s, L-i+1, 1), n, code);
    st1:=IIf((n=0)And((i=1)Or(i=2)And(Z Or (n0<1))),',Copy(c,n*2+1,2))
       + IIf((n>0), Copy(c,(i+11)*2-1, 2), IIf((i=2) Or Z, ', '整'))
       + st1;
    Z := (n=0);
    end;
  For i :=1 To Length(st) do If Copy(st, i, 4) = '亿万' Then Delete(st,i+2,2);
  NtoC := IIf(n0 = 0, '零', st+st1);
End;

----------------------------------------------
《英壬画板 inRm3D 》三维交互几何教学软件 http://www.inrm3d.cn
作者:
女 ljeana (Dgirl) ★☆☆☆☆ -
普通会员
2003/10/25 23:38:10
11楼: 我经常用这个(是从其他论坛找到的)感觉不错。

function NumTOChinaCode(NN:real):string;
var 
  HZ,NS,NW,NA,N1,N2:string; 
  LA,X,Nk:integer; 
begin 
  if NN>9999999999999.99 then
  begin
    HZ:=';
    Result:=HZ;
    exit;
  end;
  if NN=0 then
  begin
    HZ:='零元';
    result:=HZ;
    exit;
  end;
  NS:='零壹贰叁肆伍陆柒捌玖';
  NW:='分角元拾佰仟万拾佰仟亿拾佰仟万';
  NA:=FloatToStr(NN*100);
  LA:=length(NA);
  X:=1;
  HZ:=';
  while X<=LA do
  begin
    NK:=Ord(NA[x])-Ord('0');
    N1:=Copy(NS,NK*2+1,2);
    N2:=Copy(NW,LA*2+1-X*2,2);
    if (NK=0) AND ((N2='亿') OR( N2='万') OR( N2='元'))then
    begin
      if copy(HZ,Length(HZ)-1,2)='零' then
        HZ:=copy(HZ,1,length(HZ)-2);
      if copy(HZ,Length(HZ)-1,2)='亿' then
        if N2='元' then
        begin
          N1:=N2;
          N2:='零';
        end
        else
          N2:='
      else
      begin
        N1:=N2;
        N2:='零';
      end
    end
    else
    if NK=0 then
    begin
      if copy(HZ,length(HZ)-1,2)='零' then
        N1:=';
      if N2='分' then
      begin
        if copy(HZ,length(HZ)-1,2)='零' then
          HZ:=copy(HZ,1,length(HZ)-2)+'整'
        else
          HZ:=HZ+'整';
        N1:=';
      end;
      N2:=';
    end;
    HZ:=HZ+N1+N2;
    X:=X+1
  end;
  Result:=HZ;
end;
----------------------------------------------
-
作者:
男 lcszqf (altman) ★☆☆☆☆ -
盒子活跃会员
2003/10/26 10:06:52
12楼: function TForm1.Convert(money:real):string;
var
  smallMode:string;
  bigChar,powerChar:string[2];
  power,dotPos,i:integer;
begin
  power:=-2;
  smallMode:=formatfloat('0.00',money);
  dotPos:=System.Pos('.',smallMode);
  for i:=length(smallMode) downto 1 do begin
    if i=doPos then continue;
    case strtoint(copy(smallMode,i,1)) of
      1:bigchar:='壹';
      2:
       ......
      9:bigchar:='酒';
      0:bigchar:='零';
      end;
    case power of
     -3:powerchar:='厘';
     -2:powerchar:='分';
     -1:powerchar:='角';
     0:powerchar:='元';
     1,5,9:powerchar:='拾';
     2,6,10:powerchar:='佰';
     3,7,11:powerchar:='千';
     4,12:powerchar:='万';
     8:powerchar:='亿';
     end;               
     inc(power);
     Result:=bigchar+powerchar+Result;
   end;
end;
调用时:convert(strtofloat(//string));
请大家试用,
----------------------------------------------
我爱delphi
作者:
女 inrm (英壬) ★☆☆☆☆ -
普通会员
2003/10/26 19:07:04
13楼: 我原以为自己写的函数已不能再简短了,算法也已是最合理的。但是看了 11楼 ljeana 朋友推荐的代码后,深感自己的浅薄。借用其思路并将自己的代码改进如下,抛砖引玉,请各位指正:
//以下函数能将小于十万亿元的小写金额转换为大写
//作者:方小庆 inrm@263.net
Function NtoC(n0 :real) :String;
  Function IIF(b :boolean; s1,s2:string):string;
    begin  {本函数在VFP和VB均为系统内部函数}
      if b then IIF:=s1 else IIF:=s2;
    end;
  Const c = '零壹贰叁肆伍陆柒捌玖◇分角圆拾佰仟万拾佰仟亿拾佰仟万';
  var L,i,n, code :integer;
      Z :boolean;
      s, st,st1 :string;
begin
  s:= FormatFloat('0',n0*100);
  L:= Length(s);
  For i:=1 to L do
    begin
    n:= StrToInt( Copy(s, L-i+1, 1));
    P:= (i=11)or(i=7)or(i=3)or(i=1);              //亿、万、元、分位
    st:=IIF((n=0)and(Z or P),', Copy(c,n*2+1,2)) //数值
      + IIF((n=0)and(i=1),'整',                   //分位为零
        IIF((n>0)or P, Copy(c,(i+11)*2-1,2),'))  //单位
      + IIF((n=0)and(not Z)and(i>1)and P,'零',') //亿、万、元位为零而千万、千、角位不为零
      + st;
    Z:= n=0;
    end;
  For i:=1 To Length(st) do
    If Copy(st,i,4)='亿万' Then Delete(st,i+2,2); //亿位和万位之间都是零时会出现'亿万'
  result:= IIF(n0>9999999999999.99, '溢出', IIf(n0 = 0, '零', st));
End;
//谢谢了 11楼的 ljeana 朋友!

下面援引有关正确填写票据和结算凭证的基本规定
...
    四、阿拉伯小写金额数字中有“0”时,中文大写应按照汉语语言规律、
金额数字构成和防止涂改的要求进行书写。举例如下:
    (一)阿拉伯数字中间有“O”时,中文大写金额要写“零”字。如
¥1,409.50,应写成人民币壹仟肆佰零玖元伍角。
    (二)阿拉伯数字中间连续有几个“0”时,中文大写金额中间可以只写
一个“零”字。如¥6,007.14,应写成人民币陆仟零柒元壹角肆分。
    (三)阿拉伯金额数字万位或元位是“0”,或者数字中间连续有几个“0”,
万位、元位也是“0’,但千位、角位不是“0”时,中文大写金额中
可以只写一个零字,也可以不写“零”字。如¥1,680.32,应写成
人民币壹仟陆佰捌拾元零叁角贰分,或者写成人民币壹仟陆佰捌拾元
叁角贰分;又如¥107,000.53,应写成人民币壹拾万柒仟元零伍角
叁分,或者写成人民币壹拾万零柒仟元伍角叁分。
    (四)阿拉伯金额数字角位是“0”,而分位不是“0”时,中文大写金额
“元”后面应写“零”字。如¥16,409.02,应写成人民币壹万陆
仟肆佰零玖元零贰分;又如¥325.04,应写成人民币叁佰贰拾伍元
零肆分。
...
----------------------------------------------
《英壬画板 inRm3D 》三维交互几何教学软件 http://www.inrm3d.cn
作者:
男 whirlwind (旋风) ★☆☆☆☆ -
盒子活跃会员
2003/10/26 21:52:52
14楼: 上Delphi盒子或其他网站中去下载一个已经提供的程序吧!
----------------------------------------------
我爱DELPHI!
作者:
女 inrm (英壬) ★☆☆☆☆ -
普通会员
2003/10/27 19:16:58
15楼: 楼上的朋友号称“旋风”,一定知道还有个更快的“飓风”吧。何况在这里发贴的都是些自找烦恼的家伙,都是些不断追求完美的“傻瓜”。
其实这个人民币大小写转换的问题,从国人认识“数据库”开始就已被无数人解决过无数次,以后也还会被应用到无数个项目中。
以目前微机日益惊人的速度和海量的内存,一个具体函数的代码长短和其占用系统资源的多少已不再被看重。但就这个具体的问题,讨论其算法和代码的优化还是有些学习意义的---至少在字符串的处理上。
----------------------------------------------
《英壬画板 inRm3D 》三维交互几何教学软件 http://www.inrm3d.cn
作者:
男 perpetualkiss (¤CanI☆KissYou¤) ★☆☆☆☆ -
普通会员
2003/12/19 21:02:33
16楼: 不会写只有~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~~~~顶~~~~顶~~~~顶~~~~~顶~~~~~顶~~~~~顶~~~~~~~
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/1/13 17:50:34
17楼: PB写的一个函数谁能把它改成PASCAL的啊。
/*******************************************************************************************/
/*                                                                                         */
/*   函数名称:m_chge                          Author:Peng Jian        Date:1999/11/30   */
/*   ===================================================================================   */
/*   入参说明:ld_num          :小写金额,数据类型为 Decimal{2}                           */
/*                                                                                         */
/*   -----------------------------------------------------------------------------------   */
/*   出参说明:ls_capital_num  :大写金额,符合一般对金额的读写要求                        */
/*                                                                                         */
/*   -----------------------------------------------------------------------------------   */
/*   功能说明:将小写金额转换为大写金额,目前支持16位整数加上2位小数。                     */
/*                                                                                         */
/*******************************************************************************************/ 

String ls_num[0 To 9] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}
String ls_unit[0 To 3, 0 To 3] = {"元", "拾", "佰", "仟", &
 "万", "拾", "佰", "仟", &
 "亿", "拾", "佰", "仟", &
 "万", "拾", "佰", "仟" }
String ls_capital_num, ls_field_num, ls_integer, ls_decimal, ls_input_num
String ls_capital[0 To 3, 0 To 3]
Integer li_jiao, li_fen, li_i, li_x, li_y, li_len, li_num, li_last_num
Boolean lb_begin  //判别从是否从个位开始的 0

//特例:Null 返回 ""
If IsNull(ld_num) Then
Return ""
End If

//特例:0.00 返回“零元整”
If ld_num = 0 Then
Return "零元整"
End If

//分解整数和小数
ls_input_num = Trim(String(Abs(ld_num), '0.00'))
ls_integer = Left(ls_input_num, Len(ls_input_num) - 3)
ls_decimal = Right(ls_input_num, 2)
li_len = Len(ls_integer)

//整数部分处理
ls_capital_num = ""
If Integer(ls_integer) <> 0 Then
lb_begin = True
li_last_num = 10
For li_i = 0 To li_len - 1
li_num = Integer(Mid(ls_integer, li_len - li_i, 1))
li_y = Truncate(li_i / 4, 0)
li_x = li_i - li_y * 4
If li_num <> 0 Then
ls_capital[li_x, li_y] = ls_num[li_num] + ls_unit[li_x, li_y]
lb_begin = False
Else
If li_x = 0 Then
If li_y <> 0 And li_last_num <> 0 Then
ls_capital[li_x, li_y] = ls_unit[li_x, li_y] + '零'
Else
ls_capital[li_x, li_y] = ls_unit[li_x, li_y]
End If
Else
If Not lb_begin And li_last_num <> 0 Then
ls_capital[li_x, li_y] = '零'
Else
ls_capital[li_x, li_y] = '
End If
End If
//当本段四位数字全为 0 时,不需要本段四位数字的单位
If li_x = 3 Then
If Mid(ls_integer, li_len - (li_y * 4 + li_x), 4) = '0000' And li_y <> 0 Then
ls_capital[0, li_y] = Mid(ls_capital[0, li_y], 3)
End If
End If
End If
li_last_num = li_num
Next
For li_i = 0 To li_len - 1
li_y = Truncate(li_i / 4, 0)
li_x = li_i - li_y * 4
ls_capital_num = ls_capital[li_x, li_y] + ls_capital_num
Next
End If

//小数部分处理,即添加角分
If Integer(ls_decimal) <> 0 Then
li_jiao = Integer(Left(ls_decimal, 1))
li_fen = Integer(Right(ls_decimal, 1))
If li_jiao > 0 Then
ls_capital_num = ls_capital_num + ls_num[li_jiao] + "角"
End If
If li_fen > 0 Then
If li_jiao = 0 And Long(ls_integer) > 0 Then
ls_capital_num = ls_capital_num + '零'
End If
ls_capital_num = ls_capital_num + ls_num[li_fen] + "分"
End If
End If

//添加“整”
If Integer(ls_decimal) = 0 Then
ls_capital_num = ls_capital_num + "整"
ElseIf Integer(ls_decimal) <> 0 Then
li_fen = Integer(Right(ls_decimal, 1))
If li_fen = 0 Then ls_capital_num = ls_capital_num + "整"
End If

//添加“负”
If ld_num < 0 Then
ls_capital_num = "负" + ls_capital_num
End If

if (ld_num > -0.0000001) and (ld_num < 0) then
ls_capital_num = '零元整'
end if


Return ls_capital_num


----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
女 inrm (英壬) ★☆☆☆☆ -
普通会员
2004/1/15 10:07:42
18楼: 楼上的bios朋友:这代码不是你自己写的吧?
----------------------------------------------
《英壬画板 inRm3D 》三维交互几何教学软件 http://www.inrm3d.cn
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/1/15 13:20:41
19楼: 不是 其实 自己写完全没问题 每个写的来的 都不一样就是了!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
女 inrm (英壬) ★☆☆☆☆ -
普通会员
2004/1/17 15:39:43
20楼: 对四星VIP来说,这等活儿当然不在话下。只是不知为何不用现成的样例而要改写如此冗长的代码呢?
----------------------------------------------
《英壬画板 inRm3D 》三维交互几何教学软件 http://www.inrm3d.cn
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/1/17 18:16:40
21楼: :)大哥 小弟比较喜欢自己写!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
女 inrm (英壬) ★☆☆☆☆ -
普通会员
2004/1/17 20:21:02
22楼: 那为何又要请别人代劳呢?PB的语句很容易翻译的。
----------------------------------------------
《英壬画板 inRm3D 》三维交互几何教学软件 http://www.inrm3d.cn
作者:
男 sutao (炸蛋) ★☆☆☆☆ -
普通会员
2004/6/23 14:05:55
23楼: 对呀,自己写吧

----------------------------------------------
作者:
男 hpvok (hpvok) ▲▲▲▲▲ -
普通会员
2011/4/12 17:11:55
26楼: 治疗尖锐湿疣的方法 / 尖锐湿疣能治好吗 / 石家庄SEO / 尖锐湿疣的治疗药物 / 治疗尖锐湿疣的费用 / 类风湿性关节炎治疗 / 类风湿性关节炎偏方 / 尖锐湿疣论坛 / 尖锐湿疣的治疗费用 / 阴虱用什么药/石家庄天使护士学校/天使护士学校/石家庄护士学校/河北护士学校/石家庄护理学校/河北护理学校
----------------------------------------------
治疗尖锐湿疣的方法/尖锐湿疣能治好吗/石家庄SEO/尖锐湿疣的治疗费用/治疗尖锐湿疣的费用
作者:
男 simonlee (aaa) ★☆☆☆☆ -
禁用账号
2011/4/28 15:52:13
27楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
出售进销存(pos收银)软件源码
http://item.taobao.com/item.htm?id=9909187456
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/5/4 23:45:07
28楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行93.75毫秒 RSS