将小写数字金额转成大写金额

原创 2001年04月26日 13:40:00

procedure TfmBMZC.BitBtn2Click(Sender: TObject); //金额转换
const
  chNum : array[0..9] of string = ('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
  chBit : array[0..3] of string = ('圆','拾','佰','仟');
var
  y, m, d : Word;
  s : string;
  len, n , tmp: integer;
  bIsZero : Boolean;
begin
  DecodeDate(Date, y, m, d);
  jfjeChange();
  with fmPrint do begin
    qrYear.Caption:=IntToStr(y);
    qrMonth.Caption:=IntToStr(m);
    qrDay.Caption:=IntToStr(d);

    qrName.Caption:=EdName.Text;

    qrXMoney.Caption:=jf;

//对照表生成小写金额的大写
    bIsZero:=false;
    n:=Pos('.', jf); //小数点前的处理
    if n=0 then
      len:=Length(jf)
    else
      len:=n-1;
    for n:=1 to len do begin
      tmp:=StrToInt(jf[n]);
      if tmp=0 then begin
        if n<len then
          bIsZero:=true
        else if n=len then
          s:=s + chBit[len-n];
      end
      else begin
        if bIsZero then begin
          s:=s+chNum[0]+chNum[tmp] + chBit[len-n];
          bIsZero:=false;
        end
        else
          s:=s+chNum[tmp] + chBit[len-n];
      end;
    end;

    if Length(jf)>len then begin //小数点后的处理
      if len+2<=Length(jf) then begin
        tmp:=StrToInt(jf[len+2]);
        if tmp=0 then
          s:=s+'零'
        else
          s:=s+chNum[tmp]+'角';
      end;
      if len+3<=Length(jf) then
        s:=s+chNum[StrToInt(jf[len+3])]+'分';
    end;
    qrDMoney.Caption:=s;

    qrShow.Caption:='辅修报名注册费。';

    qrHandler.Caption:='僧格淋沁';

    QuickRep1.Preview;
  end;
end;

procedure TfmBMZC.jfjeChange();  //对输入框中内容的控制
var
  tmp : string;
begin
//计算"缴费金额"
  jf:=Trim(Copy(mEdJFJE.Text, 1, 4));
  if jf='' then //"元"为空
    jf:='0';

  tmp:=Trim(Copy(mEdJFJE.Text, 7, 1));
  if tmp='' then begin file://"角"为空
    tmp:=Trim(Copy(mEdJFJE.Text, 10, 1));
    if tmp<>'' then //填写了"分"
      jf:=jf+'.0'+tmp;
  end
  else begin //填写了"角"
    jf:=jf+'.'+tmp;
    tmp:=Trim(Copy(mEdJFJE.Text, 10, 1));
    if tmp<>'' then //填写了"分"
      jf:=jf+tmp;
  end;

  jf:=FloatToStr(StrToFloat(jf));
end;

end.

Java将小写金额转换成大写

public class Test { private static final String UNIT = "万千佰拾亿千佰拾万千佰拾元角分"; private static final St...
  • leayefang
  • leayefang
  • 2016年11月09日 13:19
  • 1195

jquery金额小写转大写

/** * 数字转中文 * @param dValue * @returns */ function chineseNumber(dValue) { var maxDec = 2...
  • baidu_28678737
  • baidu_28678737
  • 2015年07月03日 14:52
  • 1944

jquery、js 金额小写转成大写

jquery、js 金额小写转成大写,本代码完成了基本的转换,并不是最完整的,可根据需求进行修改,比如是否可以有小数点,(金额小数点也就两位,精确到分)...
  • u012402177
  • u012402177
  • 2016年07月29日 11:43
  • 1210

C#人民币金额大写转换

人民币金额大小写转换,三行代码 //完善了一下查询到的方法,支持小数,保留2位小数 完善了一下查询到的方法,支持小数,保留2位小数 public string NumGetStr(double Nu...
  • CommandBaby
  • CommandBaby
  • 2015年11月28日 14:00
  • 2534

SQL人民币小写金额转大写

--1、人民币小写金额转大写(第一版) ==================================================================== -- Title:...
  • tlammon
  • tlammon
  • 2016年04月05日 22:03
  • 1462

财务数字转换--大小写转换

package com.kerbores.utils.common;import java.util.HashMap; import java.util.Map;/** * 财务数字转换 * ...
  • chenjianandiyi
  • chenjianandiyi
  • 2016年01月18日 12:04
  • 1229

Qt将数字转为中文大写金额

在实现之前自己在网上找了相关资料, 没发现好的实现方法, 仿照一篇博客写能实现将整数转为大写中文数字, 但是源代码写得有些复杂且没有实现小数的转换, 索性自己改写了一下....
  • tangtaizong33
  • tangtaizong33
  • 2017年08月02日 18:25
  • 356

java实现金钱数字转大写

private static final char [] ChineseNum ={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'}; private static ...
  • qiumin333
  • qiumin333
  • 2016年11月25日 19:55
  • 2828

数字金额大小写转换

有很多时候打印凭据的时候需要实现金额大写,例如 有多种写法来实现 例如一下几种 CREATE OR REPLACE FUNCTION chinese_number_program(p_i...
  • caixingyun
  • caixingyun
  • 2014年11月18日 12:36
  • 1370

Excel数字小写金额转换汉字大写金额公式的简单设置

_________ Excel数字小写金额转换汉字大写金额公式的简单设置  华能呼伦贝尔能源有限公司 卞学敏 Excel数字小写金额转换汉字大写金额公式在会计工作中是经常应用到的,它能提高工作效...
  • mfkpie
  • mfkpie
  • 2014年05月31日 23:19
  • 17451
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将小写数字金额转成大写金额
举报原因:
原因补充:

(最多只允许输入30个字)