C 中将阿拉伯数字金额装换为中文大写汉字

C#
static string ConvertToChinese(double x)
        {
            string s = x.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");
            string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L/.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[/.]|$))))", "${b}${z}");
            return Regex.Replace(d, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万亿兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
        }

试试这个方法!  记得加命名空间
C
void   main()   
  {   
    float   x,y;   
    bool    flag = true;
    char   *ch[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};   
    char   *ch1[]={"拾","佰","仟","万"};   
    char   num[256];   
    int   i,n,j,m;   
    printf("input:");   
    scanf("%f",&x);   
    n=(int)x;   
    for(i=0;i<=256&&n!=0;i++)   
      {   
        num[i]=(char)(n%10);   
        n/=10;   
      }   
    m=i;   
    num[i]='.';   
    y=x-n;   
    for(j=0;j<=256&&y<0;j++)   
          y=y*10;   
    for(i=m+1;i<=256&&y!=0;i++)   
            {num[i]=(char)(y%10);   
              y/=10;}   
    for(n=0;;n++)   
      {   
          if(num[n]=='.')   
              {   
                for(j=n-1;j>=0;j--)   
                      {puts(ch[(int)num[j]])   
                        if(m>=2)                         
                            {puts(ch1[m-2]);   
                              m=m--;}   
                      }   
                printf("元");   
                break;   
              }   
      }   
      for(i=i-1;num[i]!='.';i--;)   
      {
            puts(ch[(int)num[i]]);   
            if (flag) {
                 printf("角")
            } else 
                 printf("分");   
            flag = false;
       }
  }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值